annotate src/dbus-server.h @ 11080:f54740547c95

[gaim-migrate @ 13092] All gaim signals are automatically relayed to dbus. committer: Tailor Script <tailor@pidgin.im>
author Piotr Zielinski <zielaj>
date Sun, 10 Jul 2005 02:29:52 +0000
parents 2eca9ed49469
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_ */