D-Bus  1.10.24
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;
47 
52 {
53  void *dummy1;
54  void *dummy2;
55  dbus_uint32_t dummy3;
56  int dummy4;
57  int dummy5;
58  int dummy6;
59  int dummy7;
60  int dummy8;
61  int dummy9;
62  int dummy10;
63  int dummy11;
64  int pad1;
65  void *pad2;
66  void *pad3;
67 };
68 
69 DBUS_EXPORT
70 DBusMessage* dbus_message_new (int message_type);
71 DBUS_EXPORT
72 DBusMessage* dbus_message_new_method_call (const char *bus_name,
73  const char *path,
74  const char *iface,
75  const char *method);
76 DBUS_EXPORT
78 DBUS_EXPORT
79 DBusMessage* dbus_message_new_signal (const char *path,
80  const char *iface,
81  const char *name);
82 DBUS_EXPORT
84  const char *error_name,
85  const char *error_message);
86 DBUS_EXPORT
88  const char *error_name,
89  const char *error_format,
90  ...);
91 
92 DBUS_EXPORT
93 DBusMessage* dbus_message_copy (const DBusMessage *message);
94 
95 DBUS_EXPORT
97 DBUS_EXPORT
98 void dbus_message_unref (DBusMessage *message);
99 DBUS_EXPORT
100 int dbus_message_get_type (DBusMessage *message);
101 DBUS_EXPORT
103  const char *object_path);
104 DBUS_EXPORT
105 const char* dbus_message_get_path (DBusMessage *message);
106 DBUS_EXPORT
108  const char *object_path);
109 DBUS_EXPORT
111  const char *iface);
112 DBUS_EXPORT
113 const char* dbus_message_get_interface (DBusMessage *message);
114 DBUS_EXPORT
116  const char *iface);
117 DBUS_EXPORT
119  const char *member);
120 DBUS_EXPORT
121 const char* dbus_message_get_member (DBusMessage *message);
122 DBUS_EXPORT
124  const char *member);
125 DBUS_EXPORT
127  const char *name);
128 DBUS_EXPORT
129 const char* dbus_message_get_error_name (DBusMessage *message);
130 DBUS_EXPORT
132  const char *destination);
133 DBUS_EXPORT
134 const char* dbus_message_get_destination (DBusMessage *message);
135 DBUS_EXPORT
137  const char *sender);
138 DBUS_EXPORT
139 const char* dbus_message_get_sender (DBusMessage *message);
140 DBUS_EXPORT
141 const char* dbus_message_get_signature (DBusMessage *message);
142 DBUS_EXPORT
144  dbus_bool_t no_reply);
145 DBUS_EXPORT
147 DBUS_EXPORT
149  const char *iface,
150  const char *method);
151 DBUS_EXPORT
153  const char *iface,
154  const char *signal_name);
155 DBUS_EXPORT
157  const char *error_name);
158 DBUS_EXPORT
160  const char *bus_name);
161 DBUS_EXPORT
163  const char *unique_bus_name);
164 DBUS_EXPORT
166  const char *signature);
167 DBUS_EXPORT
168 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
169 DBUS_EXPORT
170 void dbus_message_set_serial (DBusMessage *message,
171  dbus_uint32_t serial);
172 DBUS_EXPORT
174  dbus_uint32_t reply_serial);
175 DBUS_EXPORT
176 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
177 
178 DBUS_EXPORT
180  dbus_bool_t auto_start);
181 DBUS_EXPORT
183 
184 DBUS_EXPORT
186  char ***path);
187 
188 DBUS_EXPORT
190  int first_arg_type,
191  ...);
192 DBUS_EXPORT
194  int first_arg_type,
195  va_list var_args);
196 DBUS_EXPORT
198  DBusError *error,
199  int first_arg_type,
200  ...);
201 DBUS_EXPORT
203  DBusError *error,
204  int first_arg_type,
205  va_list var_args);
206 
207 DBUS_EXPORT
209 
210 DBUS_EXPORT
212  DBusMessageIter *iter);
213 DBUS_EXPORT
215 DBUS_EXPORT
217 DBUS_EXPORT
219 DBUS_EXPORT
221 DBUS_EXPORT
223 DBUS_EXPORT
225  DBusMessageIter *sub);
226 DBUS_EXPORT
228  void *value);
229 DBUS_EXPORT
231 
232 #ifndef DBUS_DISABLE_DEPRECATED
233 /* This function returns the wire protocol size of the array in bytes,
234  * you do not want to know that probably
235  */
236 DBUS_EXPORT
238 #endif
239 DBUS_EXPORT
241  void *value,
242  int *n_elements);
243 
244 
245 DBUS_EXPORT
247  DBusMessageIter *iter);
248 DBUS_EXPORT
250  int type,
251  const void *value);
252 DBUS_EXPORT
254  int element_type,
255  const void *value,
256  int n_elements);
257 DBUS_EXPORT
259  int type,
260  const char *contained_signature,
261  DBusMessageIter *sub);
262 DBUS_EXPORT
264  DBusMessageIter *sub);
265 DBUS_EXPORT
267  DBusMessageIter *sub);
268 
269 DBUS_EXPORT
270 void dbus_message_lock (DBusMessage *message);
271 
272 DBUS_EXPORT
274  DBusMessage *message);
275 
276 
277 DBUS_EXPORT
278 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
279 DBUS_EXPORT
280 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
281 DBUS_EXPORT
283  dbus_int32_t slot,
284  void *data,
285  DBusFreeFunction free_data_func);
286 DBUS_EXPORT
287 void* dbus_message_get_data (DBusMessage *message,
288  dbus_int32_t slot);
289 
290 DBUS_EXPORT
291 int dbus_message_type_from_string (const char *type_str);
292 DBUS_EXPORT
293 const char* dbus_message_type_to_string (int type);
294 
295 DBUS_EXPORT
297  char **marshalled_data_p,
298  int *len_p);
299 DBUS_EXPORT
300 DBusMessage* dbus_message_demarshal (const char *str,
301  int len,
302  DBusError *error);
303 
304 DBUS_EXPORT
305 int dbus_message_demarshal_bytes_needed (const char *str,
306  int len);
307 
308 DBUS_EXPORT
310  dbus_bool_t allow);
311 
312 DBUS_EXPORT
314  DBusMessage *message);
315 
319 
320 #endif /* DBUS_MESSAGE_H */
int dbus_message_type_from_string(const char *type_str)
Utility function to convert a machine-readable (not translated) string into a D-Bus message type...
DBusMessage * dbus_message_ref(DBusMessage *message)
Increments the reference count of a DBusMessage.
void dbus_message_lock(DBusMessage *message)
Locks a message.
Definition: dbus-message.c:407
dbus_bool_t dbus_message_has_path(DBusMessage *message, const char *path)
Checks if the message has a particular object path.
dbus_bool_t dbus_message_is_method_call(DBusMessage *message, const char *iface, const char *method)
Checks whether the message is a method call with the given interface and member fields.
void(* DBusFreeFunction)(void *memory)
The type of a function which frees a block of memory.
Definition: dbus-memory.h:64
void dbus_message_set_no_reply(DBusMessage *message, dbus_bool_t no_reply)
Sets a flag indicating that the message does not want a reply; if this flag is set, the other end of the connection may (but is not required to) optimize by not sending method return or error replies.
int dbus_message_iter_get_arg_type(DBusMessageIter *iter)
Returns the argument type of the argument that the message iterator points to.
#define DBUS_DEPRECATED
Tells the compiler to warn about a function or type if it&#39;s used.
void * dummy2
Don&#39;t use this.
Definition: dbus-message.h:54
#define DBUS_BEGIN_DECLS
Macro used prior to declaring functions in the D-Bus header files.
dbus_uint32_t dbus_message_get_serial(DBusMessage *message)
Returns the serial of a message or 0 if none has been specified.
void dbus_message_iter_recurse(DBusMessageIter *iter, DBusMessageIter *sub)
Recurses into a container value when reading values from a message, initializing a sub-iterator to us...
dbus_bool_t dbus_message_set_interface(DBusMessage *message, const char *iface)
Sets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the interface...
void dbus_message_free_data_slot(dbus_int32_t *slot_p)
Deallocates a global ID for message data slots.
const char * dbus_message_get_error_name(DBusMessage *message)
Gets the error name (DBUS_MESSAGE_TYPE_ERROR only) or NULL if none.
dbus_bool_t dbus_message_iter_close_container(DBusMessageIter *iter, DBusMessageIter *sub)
Closes a container-typed value appended to the message; may write out more information to the message...
dbus_bool_t dbus_message_is_error(DBusMessage *message, const char *error_name)
Checks whether the message is an error reply with the given error name.
const char * dbus_message_get_sender(DBusMessage *message)
Gets the unique name of the connection which originated this message, or NULL if unknown or inapplica...
dbus_bool_t dbus_message_allocate_data_slot(dbus_int32_t *slot_p)
Allocates an integer ID to be used for storing application-specific data on any DBusMessage.
DBusMessage * dbus_message_new(int message_type)
Constructs a new message of the given message type.
const char * dbus_message_get_signature(DBusMessage *message)
Gets the type signature of the message, i.e.
void dbus_message_iter_init_append(DBusMessage *message, DBusMessageIter *iter)
Initializes a DBusMessageIter for appending arguments to the end of a message.
void dbus_message_set_auto_start(DBusMessage *message, dbus_bool_t auto_start)
Sets a flag indicating that an owner for the destination name will be automatically started before th...
dbus_bool_t dbus_message_get_allow_interactive_authorization(DBusMessage *message)
Returns whether the flag controlled by dbus_message_set_allow_interactive_authorization() has been se...
dbus_bool_t dbus_message_has_interface(DBusMessage *message, const char *iface)
Checks if the message has an interface.
int dummy4
Don&#39;t use this.
Definition: dbus-message.h:56
const char * dbus_message_get_path(DBusMessage *message)
Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitt...
DBusMessage * dbus_message_new_signal(const char *path, const char *iface, const char *name)
Constructs a new message representing a signal emission.
int dummy7
Don&#39;t use this.
Definition: dbus-message.h:59
dbus_bool_t dbus_message_iter_has_next(DBusMessageIter *iter)
Checks if an iterator has any more fields.
dbus_bool_t dbus_message_has_member(DBusMessage *message, const char *member)
Checks if the message has an interface member.
DBusMessageIter struct; contains no public fields.
Definition: dbus-message.h:51
int dummy10
Don&#39;t use this.
Definition: dbus-message.h:62
dbus_bool_t dbus_message_iter_init(DBusMessage *message, DBusMessageIter *iter)
Initializes a DBusMessageIter for reading the arguments of the message passed in. ...
const char * dbus_message_get_destination(DBusMessage *message)
Gets the destination of a message or NULL if there is none set.
dbus_bool_t dbus_message_iter_append_fixed_array(DBusMessageIter *iter, int element_type, const void *value, int n_elements)
Appends a block of fixed-length values to an array.
dbus_bool_t dbus_message_set_error_name(DBusMessage *message, const char *error_name)
Sets the name of the error (DBUS_MESSAGE_TYPE_ERROR).
const char * dbus_message_get_member(DBusMessage *message)
Gets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE...
Internals of DBusMessage.
dbus_uint32_t dbus_bool_t
A boolean, valid values are TRUE and FALSE.
Definition: dbus-types.h:35
dbus_bool_t dbus_message_set_sender(DBusMessage *message, const char *sender)
Sets the message sender.
dbus_bool_t dbus_message_is_signal(DBusMessage *message, const char *iface, const char *signal_name)
Checks whether the message is a signal with the given interface and member fields.
dbus_bool_t dbus_message_get_path_decomposed(DBusMessage *message, char ***path)
Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitt...
dbus_bool_t dbus_message_set_path(DBusMessage *message, const char *object_path)
Sets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the one a s...
dbus_bool_t dbus_message_get_args(DBusMessage *message, DBusError *error, int first_arg_type,...)
Gets arguments from a message given a variable argument list.
Object representing an exception.
Definition: dbus-errors.h:48
int dbus_message_iter_get_element_count(DBusMessageIter *iter)
Returns the number of elements in the array-typed value pointed to by the iterator.
dbus_bool_t dbus_message_append_args(DBusMessage *message, int first_arg_type,...)
Appends fields to a message given a variable argument list.
dbus_uint32_t dbus_message_get_reply_serial(DBusMessage *message)
Returns the serial that the message is a reply to or 0 if none.
dbus_bool_t dbus_message_has_signature(DBusMessage *message, const char *signature)
Checks whether the message has the given signature; see dbus_message_get_signature() for more details...
DBusMessage * dbus_message_new_method_call(const char *destination, const char *path, const char *iface, const char *method)
Constructs a new message to invoke a method on a remote object.
int dummy8
Don&#39;t use this.
Definition: dbus-message.h:60
int dummy6
Don&#39;t use this.
Definition: dbus-message.h:58
dbus_bool_t dbus_message_has_destination(DBusMessage *message, const char *name)
Checks whether the message was sent to the given name.
dbus_bool_t dbus_message_get_auto_start(DBusMessage *message)
Returns TRUE if the message will cause an owner for destination name to be auto-started.
void * pad3
Don&#39;t use this.
Definition: dbus-message.h:66
dbus_bool_t dbus_message_marshal(DBusMessage *msg, char **marshalled_data_p, int *len_p)
Turn a DBusMessage into the marshalled form as described in the D-Bus specification.
DBusMessage * dbus_message_copy(const DBusMessage *message)
Creates a new message that is an exact replica of the message specified, except that its refcount is ...
int dbus_message_iter_get_element_type(DBusMessageIter *iter)
Returns the element type of the array that the message iterator points to.
dbus_bool_t dbus_message_get_args_valist(DBusMessage *message, DBusError *error, int first_arg_type, va_list var_args)
Like dbus_message_get_args but takes a va_list for use by language bindings.
dbus_bool_t dbus_set_error_from_message(DBusError *error, DBusMessage *message)
Sets a DBusError based on the contents of the given message.
DBusMessage * dbus_message_demarshal(const char *str, int len, DBusError *error)
Demarshal a D-Bus message from the format described in the D-Bus specification.
void dbus_message_iter_get_fixed_array(DBusMessageIter *iter, void *value, int *n_elements)
Reads a block of fixed-length values from the message iterator.
const char * dbus_message_get_interface(DBusMessage *message)
Gets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted...
dbus_bool_t dbus_message_set_reply_serial(DBusMessage *message, dbus_uint32_t reply_serial)
Sets the reply serial of a message (the serial of the message this is a reply to).
dbus_bool_t dbus_message_has_sender(DBusMessage *message, const char *name)
Checks whether the message has the given unique name as its sender.
dbus_bool_t dbus_message_iter_next(DBusMessageIter *iter)
Moves the iterator to the next field, if any.
void dbus_message_iter_get_basic(DBusMessageIter *iter, void *value)
Reads a basic-typed value from the message iterator.
void * dbus_message_get_data(DBusMessage *message, dbus_int32_t slot)
Retrieves data previously set with dbus_message_set_data().
dbus_bool_t dbus_message_set_destination(DBusMessage *message, const char *destination)
Sets the message&#39;s destination.
void * pad2
Don&#39;t use this.
Definition: dbus-message.h:65
dbus_bool_t dbus_message_get_no_reply(DBusMessage *message)
Returns TRUE if the message does not expect a reply.
dbus_bool_t dbus_message_iter_open_container(DBusMessageIter *iter, int type, const char *contained_signature, DBusMessageIter *sub)
Appends a container-typed value to the message; you are required to append the contents of the contai...
dbus_bool_t dbus_message_iter_append_basic(DBusMessageIter *iter, int type, const void *value)
Appends a basic-typed value to the message.
int dbus_message_iter_get_array_len(DBusMessageIter *iter)
Returns the number of bytes in the array as marshaled in the wire protocol.
void dbus_message_set_allow_interactive_authorization(DBusMessage *message, dbus_bool_t allow)
Sets a flag indicating that the caller of the method is prepared to wait for interactive authorizatio...
int dummy5
Don&#39;t use this.
Definition: dbus-message.h:57
int dbus_message_get_type(DBusMessage *message)
Gets the type of a message.
int dummy11
Don&#39;t use this.
Definition: dbus-message.h:63
dbus_bool_t dbus_message_append_args_valist(DBusMessage *message, int first_arg_type, va_list var_args)
Like dbus_message_append_args() but takes a va_list for use by language bindings. ...
int dbus_message_demarshal_bytes_needed(const char *buf, int len)
Returns the number of bytes required to be in the buffer to demarshal a D-Bus message.
char * dbus_message_iter_get_signature(DBusMessageIter *iter)
Returns the current signature of a message iterator.
void dbus_message_iter_abandon_container(DBusMessageIter *iter, DBusMessageIter *sub)
Abandons creation of a contained-typed value and frees resources created by dbus_message_iter_open_co...
dbus_bool_t dbus_message_contains_unix_fds(DBusMessage *message)
Checks whether a message contains unix fds.
dbus_uint32_t dummy3
Don&#39;t use this.
Definition: dbus-message.h:55
dbus_bool_t dbus_message_set_member(DBusMessage *message, const char *member)
Sets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE...
const char * dbus_message_type_to_string(int type)
Utility function to convert a D-Bus message type into a machine-readable string (not translated)...
void dbus_message_unref(DBusMessage *message)
Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...
int dummy9
Don&#39;t use this.
Definition: dbus-message.h:61
void * dummy1
Don&#39;t use this.
Definition: dbus-message.h:53
int pad1
Don&#39;t use this.
Definition: dbus-message.h:64
DBusMessage * dbus_message_new_error_printf(DBusMessage *reply_to, const char *error_name, const char *error_format,...)
Creates a new message that is an error reply to another message, allowing you to use printf formattin...
dbus_bool_t dbus_message_set_data(DBusMessage *message, dbus_int32_t slot, void *data, DBusFreeFunction free_data_func)
Stores a pointer on a DBusMessage, along with an optional function to be used for freeing the data wh...
void dbus_message_set_serial(DBusMessage *message, dbus_uint32_t serial)
Sets the serial number of a message.
Definition: dbus-message.c:277
DBusMessage * dbus_message_new_method_return(DBusMessage *method_call)
Constructs a message that is a reply to a method call.
DBusMessage * dbus_message_new_error(DBusMessage *reply_to, const char *error_name, const char *error_message)
Creates a new message that is an error reply to another message.
#define DBUS_END_DECLS
Macro used after declaring functions in the D-Bus header files.