annotate src/dbus-server.h @ 11111:f03dce7ea408

[gaim-migrate @ 13163] Patch #1234440, from sadrul "Mark blocked users in the buddy-list" Patch #1234197, from sadrul "New API fn gaim_privacy_check" Plus changes by me. (Read as: blame me if it's busted, thank sadrul if it works) Basically, all this stuff boils down to the following: We composite a new blocked.png onto the prpl icon in the buddy list if the user is blocked. MSN was the only prpl that used the old blocked.png. However, it looks bad to overlay both icons, so I removed the use of blocked.png from the MSN prpl. As an MSN user, I think the result is intuitive. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sun, 17 Jul 2005 23:36:34 +0000
parents f54740547c95
children 0754ce8f1122
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11055
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
1 /**
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
2 * @file dbus-server.h Gaim DBUS Server
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
3 * @ingroup core
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
4 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
5 * gaim
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
6 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
9 * source distribution.
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
10 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
14 * (at your option) any later version.
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
15 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
19 * GNU General Public License for more details.
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
20 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
24 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
25 */
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
26
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
27 #ifndef _GAIM_DBUS_SERVER_H_
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
28 #define _GAIM_DBUS_SERVER_H_
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
29
11080
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
30 #include <glib-object.h>
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
31 #include "value.h"
11067
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
32
11055
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
33 G_BEGIN_DECLS
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
34
11067
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
35 /* These are the categories of codes used by gaim dbus implementation
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
36 for remote calls. In practice, they don't matter
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
37 */
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
38 typedef enum {
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
39 DBUS_ERROR_NONE = 0,
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
40 DBUS_ERROR_NOT_FOUND = 1
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
41 } DbusErrorCodes;
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
42
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
43 /* Types of pointers that can be registered with the gaim dbus pointer
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
44 registration engine. See below */
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
45 typedef enum {
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
46 DBUS_POINTER_GROUP,
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
47 DBUS_POINTER_CONTACT,
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
48 DBUS_POINTER_BUDDY,
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
49 DBUS_POINTER_CHAT,
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
50 DBUS_POINTER_ACCOUNT
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
51 } GaimDBusPointerType;
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
52
11080
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
53 typedef struct _GaimObject GaimObject;
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
54
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
55 /** The main GaimObject */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
56 GaimObject * gaim_dbus_object;
11067
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
57
11055
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
58 /**
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
59 * Starts the gaim DBUS server. It is responsible for handling DBUS
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
60 * requests from other applications.
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
61 *
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
62 * @return TRUE if successful, FALSE otherwise.
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
63 */
11080
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
64 gboolean gaim_dbus_init(void);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
65
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
66 gboolean gaim_dbus_connect(GaimObject *object);
11055
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
67
11067
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
68 /**
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
69 Initializes gaim dbus pointer registration engine.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
70
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
71 Remote dbus applications need a way of addressing objects exposed
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
72 by gaim to the outside world. In gaim itself, these objects (such
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
73 as GaimBuddy and company) are identified by pointers. The gaim
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
74 dbus pointer registration engine converts pointers to handles and
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
75 back.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
76
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
77 In order for an object to participate in the scheme, it must
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
78 register itself and its type with the engine. This registration
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
79 allocates an integer id which can be resolved to the pointer and
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
80 back.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
81
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
82 Handles are not persistent. They are reissued every time gaim is
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
83 started. This is not good; external applications that use gaim
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
84 should work even whether gaim was restarted in the middle of the
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
85 interaction.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
86
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
87 Pointer registration is only a temporary solution. When GaimBuddy
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
88 and similar structures have been converted into gobjects, this
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
89 registration will be done automatically by objects themselves.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
90
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
91 By the way, this kind of object-handle translation should be so
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
92 common that there must be a library (maybe even glib) that
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
93 implements it. I feel a bit like reinventing the wheel here.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
94 */
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
95 void gaim_dbus_init_ids(void);
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
96
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
97 /**
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
98 Registers a typed pointer.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
99
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
100 @node The pointer to register.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
101 @type Type of that pointer.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
102 */
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
103 void gaim_dbus_register_pointer(gpointer node, GaimDBusPointerType type);
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
104
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
105 /**
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
106 Unregisters a pointer previously registered with
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
107 gaim_dbus_register_pointer.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
108
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
109 @node The pointer to register.
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
110 */
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
111 void gaim_dbus_unregister_pointer(gpointer node);
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
112
11080
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
113 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
114 Registers a gaim signal with a #GaimObject.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
115
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
116 @param object The #GaimObject (usually #gaim_dbus_object)
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
117 @param name Name of the signal
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
118 @param marshaller Marshaller for the signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
119 @param num_values The number of parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
120 @param values Array of pointers to #GaimValue objects representing
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
121 the types of the parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
122 @result The dbus id of the registered signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
123
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
124 This function is intended to be used in signal.h, where it
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
125 automatically registers all gaim signals with dbus. For your own
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
126 dbus signals, use #gaim_dbus_register.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
127
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
128 The name of the signal, usually in the form "aaa-bbb-ccc", is
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
129 converted into DBus standard, "AaaBbbCcc", because "aaa-bbb-ccc"
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
130 doesn't work with DBus GObject binding version 0.34 (cvs version is ok).
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
131
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
132 The #marshaller can be set to gaim_dbus_invalid_marshaller because
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
133 DBus signals are never passed to any local handler.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
134 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
135 int gaim_dbus_signal_register_gaim(GaimObject *object, const char *name,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
136 GSignalCMarshaller marshaller,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
137 int num_values, GaimValue **values);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
138
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
139 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
140 Emits a dbus signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
141
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
142 @param object The #GaimObject (usually #gaim_dbus_object)
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
143 @param dbus_id Id of the signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
144 @param num_values The number of parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
145 @param values Array of pointers to #GaimValue objects representing
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
146 the types of the parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
147 @param vargs A va_list containing the actual parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
148
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
149 This function is intended to be used in signal.h, where it
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
150 automatically emits all gaim signals to dbus. For your own dbus
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
151 signals, use #gaim_dbus_emit.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
152 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
153 void gaim_dbus_signal_emit_gaim(GaimObject *object, int dbus_id,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
154 int num_values, GaimValue **values, va_list vargs);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
155
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
156 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
157 A marshaller that emits an "assertion failed" message if called.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
158
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
159 This marshaller is intended to use with signal that will never need to be marshalled.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
160 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
161 void gaim_dbus_invalid_marshaller(GClosure *closure,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
162 GValue *return_value,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
163 guint n_param_values,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
164 const GValue *param_values,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
165 gpointer invocation_hint,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
166 gpointer marshal_data);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
167
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
168 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
169 Registers a gaim signal with a #GaimObject.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
170
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
171 @param object The #GaimObject (usually #gaim_dbus_object)
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
172 @param name Name of the signal
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
173 @param marshaller Marshaller for the signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
174 @param num_values The number of parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
175 @param ... List of GType of the parameter types.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
176
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
177 @result The dbus id of the registered signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
178 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
179 int gaim_dbus_signal_register(GaimObject *object, const char *name,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
180 GSignalCMarshaller marshaller,
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
181 int num_values, ...);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
182
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
183 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
184 Emits a dbus signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
185
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
186 @param object The #GaimObject (usually #gaim_dbus_object)
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
187 @param dbus_id Id of the signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
188 @param ... Actual parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
189 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
190 void gaim_dbus_signal_emit(GaimObject *object, int dbus_id, ...);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
191
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
192 /**
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
193 Emits a dbus signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
194
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
195 @param object The #GaimObject (usually #gaim_dbus_object)
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
196 @param dbus_id Id of the signal.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
197 @param vargs A va_list containing the actual parameters.
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
198 */
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
199 void gaim_dbus_signal_emit_valist(GaimObject *object, int dbus_id, va_list args);
f54740547c95 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj>
parents: 11067
diff changeset
200
11067
2eca9ed49469 [gaim-migrate @ 13048]
Piotr Zielinski <zielaj>
parents: 11055
diff changeset
201
11055
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
202 G_END_DECLS
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
203
df0241eb602c [gaim-migrate @ 12996]
Piotr Zielinski <zielaj>
parents:
diff changeset
204 #endif /* _GAIM_DBUS_SERVER_H_ */