D-Bus  1.12.16
dbus-message.h
1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2 /* dbus-message.h DBusMessage object
3  *
4  * Copyright (C) 2002, 2003, 2005 Red Hat Inc.
5  *
6  * Licensed under the Academic Free License version 2.1
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  */
23 #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
24 #error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
25 #endif
26 
27 #ifndef DBUS_MESSAGE_H
28 #define DBUS_MESSAGE_H
29 
30 #include <dbus/dbus-macros.h>
31 #include <dbus/dbus-types.h>
32 #include <dbus/dbus-arch-deps.h>
33 #include <dbus/dbus-memory.h>
34 #include <dbus/dbus-errors.h>
35 #include <stdarg.h>
36 
38 
44 typedef struct DBusMessage DBusMessage;
57 
62 {
63  void *dummy1;
64  void *dummy2;
66  int dummy4;
67  int dummy5;
68  int dummy6;
69  int dummy7;
70  int dummy8;
71  int dummy9;
72  int dummy10;
73  int dummy11;
74  int pad1;
75  void *pad2;
76  void *pad3;
77 };
78 
83 #define DBUS_MESSAGE_ITER_INIT_CLOSED \
84 { \
85  NULL, /* dummy1 */ \
86  NULL, /* dummy2 */ \
87  0, /* dummy3 */ \
88  0, /* dummy4 */ \
89  0, /* dummy5 */ \
90  0, /* dummy6 */ \
91  0, /* dummy7 */ \
92  0, /* dummy8 */ \
93  0, /* dummy9 */ \
94  0, /* dummy10 */ \
95  0, /* dummy11 */ \
96  0, /* pad1 */ \
97  NULL, /* pad2 */ \
98  NULL /* pad3 */ \
99 }
100 
101 DBUS_EXPORT
102 DBusMessage* dbus_message_new (int message_type);
103 DBUS_EXPORT
104 DBusMessage* dbus_message_new_method_call (const char *bus_name,
105  const char *path,
106  const char *iface,
107  const char *method);
108 DBUS_EXPORT
110 DBUS_EXPORT
111 DBusMessage* dbus_message_new_signal (const char *path,
112  const char *iface,
113  const char *name);
114 DBUS_EXPORT
116  const char *error_name,
117  const char *error_message);
118 DBUS_EXPORT
120  const char *error_name,
121  const char *error_format,
122  ...) _DBUS_GNUC_PRINTF (3, 4);
123 
124 DBUS_EXPORT
125 DBusMessage* dbus_message_copy (const DBusMessage *message);
126 
127 DBUS_EXPORT
129 DBUS_EXPORT
130 void dbus_message_unref (DBusMessage *message);
131 DBUS_EXPORT
132 int dbus_message_get_type (DBusMessage *message);
133 DBUS_EXPORT
135  const char *object_path);
136 DBUS_EXPORT
137 const char* dbus_message_get_path (DBusMessage *message);
138 DBUS_EXPORT
140  const char *object_path);
141 DBUS_EXPORT
143  const char *iface);
144 DBUS_EXPORT
145 const char* dbus_message_get_interface (DBusMessage *message);
146 DBUS_EXPORT
148  const char *iface);
149 DBUS_EXPORT
151  const char *member);
152 DBUS_EXPORT
153 const char* dbus_message_get_member (DBusMessage *message);
154 DBUS_EXPORT
156  const char *member);
157 DBUS_EXPORT
159  const char *name);
160 DBUS_EXPORT
161 const char* dbus_message_get_error_name (DBusMessage *message);
162 DBUS_EXPORT
164  const char *destination);
165 DBUS_EXPORT
166 const char* dbus_message_get_destination (DBusMessage *message);
167 DBUS_EXPORT
169  const char *sender);
170 DBUS_EXPORT
171 const char* dbus_message_get_sender (DBusMessage *message);
172 DBUS_EXPORT
173 const char* dbus_message_get_signature (DBusMessage *message);
174 DBUS_EXPORT
176  dbus_bool_t no_reply);
177 DBUS_EXPORT
179 DBUS_EXPORT
181  const char *iface,
182  const char *method);
183 DBUS_EXPORT
185  const char *iface,
186  const char *signal_name);
187 DBUS_EXPORT
189  const char *error_name);
190 DBUS_EXPORT
192  const char *bus_name);
193 DBUS_EXPORT
195  const char *unique_bus_name);
196 DBUS_EXPORT
198  const char *signature);
199 DBUS_EXPORT
201 DBUS_EXPORT
202 void dbus_message_set_serial (DBusMessage *message,
203  dbus_uint32_t serial);
204 DBUS_EXPORT
206  dbus_uint32_t reply_serial);
207 DBUS_EXPORT
209 
210 DBUS_EXPORT
212  dbus_bool_t auto_start);
213 DBUS_EXPORT
215 
216 DBUS_EXPORT
218  char ***path);
219 
220 DBUS_EXPORT
222  int first_arg_type,
223  ...);
224 DBUS_EXPORT
226  int first_arg_type,
227  va_list var_args);
228 DBUS_EXPORT
230  DBusError *error,
231  int first_arg_type,
232  ...);
233 DBUS_EXPORT
235  DBusError *error,
236  int first_arg_type,
237  va_list var_args);
238 
239 DBUS_EXPORT
241 
242 DBUS_EXPORT
244 DBUS_EXPORT
246  DBusMessageIter *iter);
247 DBUS_EXPORT
249 DBUS_EXPORT
251 DBUS_EXPORT
253 DBUS_EXPORT
255 DBUS_EXPORT
257 DBUS_EXPORT
259  DBusMessageIter *sub);
260 DBUS_EXPORT
262  void *value);
263 DBUS_EXPORT
265 
266 #ifndef DBUS_DISABLE_DEPRECATED
267 /* This function returns the wire protocol size of the array in bytes,
268  * you do not want to know that probably
269  */
270 DBUS_EXPORT
272 #endif
273 DBUS_EXPORT
275  void *value,
276  int *n_elements);
277 
278 
279 DBUS_EXPORT
281  DBusMessageIter *iter);
282 DBUS_EXPORT
284  int type,
285  const void *value);
286 DBUS_EXPORT
288  int element_type,
289  const void *value,
290  int n_elements);
291 DBUS_EXPORT
293  int type,
294  const char *contained_signature,
295  DBusMessageIter *sub);
296 DBUS_EXPORT
298  DBusMessageIter *sub);
299 DBUS_EXPORT
301  DBusMessageIter *sub);
302 
303 DBUS_EXPORT
305  DBusMessageIter *sub);
306 
307 DBUS_EXPORT
308 void dbus_message_lock (DBusMessage *message);
309 
310 DBUS_EXPORT
312  DBusMessage *message);
313 
314 
315 DBUS_EXPORT
317 DBUS_EXPORT
319 DBUS_EXPORT
321  dbus_int32_t slot,
322  void *data,
323  DBusFreeFunction free_data_func);
324 DBUS_EXPORT
325 void* dbus_message_get_data (DBusMessage *message,
326  dbus_int32_t slot);
327 
328 DBUS_EXPORT
329 int dbus_message_type_from_string (const char *type_str);
330 DBUS_EXPORT
331 const char* dbus_message_type_to_string (int type);
332 
333 DBUS_EXPORT
335  char **marshalled_data_p,
336  int *len_p);
337 DBUS_EXPORT
338 DBusMessage* dbus_message_demarshal (const char *str,
339  int len,
340  DBusError *error);
341 
342 DBUS_EXPORT
343 int dbus_message_demarshal_bytes_needed (const char *str,
344  int len);
345 
346 DBUS_EXPORT
348  dbus_bool_t allow);
349 
350 DBUS_EXPORT
352  DBusMessage *message);
353 
366 static inline void
367 dbus_clear_message (DBusMessage **pointer_to_message)
368 {
369  _dbus_clear_pointer_impl (DBusMessage, pointer_to_message,
371 }
372 
376 
377 #endif /* DBUS_MESSAGE_H */