1 /* -*- mode: C; c-file-style: "gnu" -*- */
2 /* dbus-message.h DBusMessage object
4 * Copyright (C) 2002, 2003, 2005 Red Hat Inc.
5 * Portion Copyright © 2008 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
6 * Licensed under the Academic Free License version 2.1
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.
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.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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."
27 #ifndef DBUS_MESSAGE_H
28 #define DBUS_MESSAGE_H
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>
40 * @addtogroup DBusMessage
44 typedef struct DBusMessage DBusMessage;
45 /** Opaque type representing a message iterator. Can be copied by value, and contains no allocated memory so never needs to be freed and can be allocated on the stack. */
46 typedef struct DBusMessageIter DBusMessageIter;
49 * DBusMessageIter struct; contains no public fields.
51 struct DBusMessageIter
53 void *dummy1; /**< Don't use this */
54 void *dummy2; /**< Don't use this */
55 dbus_uint32_t dummy3; /**< Don't use this */
56 int dummy4; /**< Don't use this */
57 int dummy5; /**< Don't use this */
58 int dummy6; /**< Don't use this */
59 int dummy7; /**< Don't use this */
60 int dummy8; /**< Don't use this */
61 int dummy9; /**< Don't use this */
62 int dummy10; /**< Don't use this */
63 int dummy11; /**< Don't use this */
64 int pad1; /**< Don't use this */
65 int pad2; /**< Don't use this */
66 void *pad3; /**< Don't use this */
72 DBusMessage* dbus_message_new (int message_type);
77 DBusMessage* dbus_message_new_method_call (const char *bus_name,
79 const char *interface,
85 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call);
90 DBusMessage* dbus_message_new_signal (const char *path,
91 const char *interface,
96 DBusMessage* dbus_message_new_error (DBusMessage *reply_to,
97 const char *error_name,
98 const char *error_message);
103 DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to,
104 const char *error_name,
105 const char *error_format,
111 DBusMessage* dbus_message_copy (const DBusMessage *message);
116 DBusMessage* dbus_message_ref (DBusMessage *message);
121 void dbus_message_unref (DBusMessage *message);
126 int dbus_message_get_type (DBusMessage *message);
131 dbus_bool_t dbus_message_set_path (DBusMessage *message,
132 const char *object_path);
136 const char* dbus_message_get_path (DBusMessage *message);
141 dbus_bool_t dbus_message_has_path (DBusMessage *message,
142 const char *object_path);
146 dbus_bool_t dbus_message_set_interface (DBusMessage *message,
147 const char *interface);
152 const char* dbus_message_get_interface (DBusMessage *message);
157 dbus_bool_t dbus_message_has_interface (DBusMessage *message,
158 const char *interface);
162 dbus_bool_t dbus_message_set_member (DBusMessage *message,
168 const char* dbus_message_get_member (DBusMessage *message);
173 dbus_bool_t dbus_message_has_member (DBusMessage *message,
178 dbus_bool_t dbus_message_set_error_name (DBusMessage *message,
183 const char* dbus_message_get_error_name (DBusMessage *message);
187 dbus_bool_t dbus_message_set_destination (DBusMessage *message,
188 const char *destination);
192 const char* dbus_message_get_destination (DBusMessage *message);
197 dbus_bool_t dbus_message_set_sender (DBusMessage *message,
202 const char* dbus_message_get_sender (DBusMessage *message);
207 const char* dbus_message_get_signature (DBusMessage *message);
212 void dbus_message_set_no_reply (DBusMessage *message,
213 dbus_bool_t no_reply);
217 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message);
222 dbus_bool_t dbus_message_is_method_call (DBusMessage *message,
223 const char *interface,
228 dbus_bool_t dbus_message_is_signal (DBusMessage *message,
229 const char *interface,
230 const char *signal_name);
235 dbus_bool_t dbus_message_is_error (DBusMessage *message,
236 const char *error_name);
240 dbus_bool_t dbus_message_has_destination (DBusMessage *message,
241 const char *bus_name);
245 dbus_bool_t dbus_message_has_sender (DBusMessage *message,
246 const char *unique_bus_name);
250 dbus_bool_t dbus_message_has_signature (DBusMessage *message,
251 const char *signature);
255 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
259 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
260 dbus_uint32_t reply_serial);
265 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
270 void dbus_message_set_auto_start (DBusMessage *message,
271 dbus_bool_t auto_start);
275 dbus_bool_t dbus_message_get_auto_start (DBusMessage *message);
280 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message,
286 dbus_bool_t dbus_message_append_args (DBusMessage *message,
292 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
299 dbus_bool_t dbus_message_get_args (DBusMessage *message,
306 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
315 dbus_bool_t dbus_message_iter_init (DBusMessage *message,
316 DBusMessageIter *iter);
321 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
326 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
331 char* dbus_message_iter_get_signature (DBusMessageIter *iter);
336 int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
341 int dbus_message_iter_get_element_type (DBusMessageIter *iter);
346 void dbus_message_iter_recurse (DBusMessageIter *iter,
347 DBusMessageIter *sub);
351 void dbus_message_iter_get_basic (DBusMessageIter *iter,
354 #ifndef DBUS_DISABLE_DEPRECATED
355 /* This function returns the wire protocol size of the array in bytes,
356 * you do not want to know that probably
362 int dbus_message_iter_get_array_len (DBusMessageIter *iter) DBUS_GNUC_DEPRECATED;
368 void dbus_message_iter_get_fixed_array (DBusMessageIter *iter,
375 void dbus_message_iter_init_append (DBusMessage *message,
376 DBusMessageIter *iter);
380 dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter,
386 dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter,
393 dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter,
395 const char *contained_signature,
396 DBusMessageIter *sub);
400 dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter,
401 DBusMessageIter *sub);
407 dbus_bool_t dbus_set_error_from_message (DBusError *error,
408 DBusMessage *message);
414 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
418 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
422 dbus_bool_t dbus_message_set_data (DBusMessage *message,
425 DBusFreeFunction free_data_func);
429 void* dbus_message_get_data (DBusMessage *message,
435 int dbus_message_type_from_string (const char *type_str);
439 const char * dbus_message_type_to_string (int type);
445 #endif /* DBUS_MESSAGE_H */