00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
00024 #error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
00025 #endif
00026
00027 #ifndef DBUS_MESSAGE_H
00028 #define DBUS_MESSAGE_H
00029
00030 #include <dbus/dbus-macros.h>
00031 #include <dbus/dbus-types.h>
00032 #include <dbus/dbus-arch-deps.h>
00033 #include <dbus/dbus-memory.h>
00034 #include <dbus/dbus-errors.h>
00035 #include <stdarg.h>
00036
00037 DBUS_BEGIN_DECLS
00038
00044 typedef struct DBusMessage DBusMessage;
00046 typedef struct DBusMessageIter DBusMessageIter;
00047
00051 struct DBusMessageIter
00052 {
00053 void *dummy1;
00054 void *dummy2;
00055 dbus_uint32_t dummy3;
00056 int dummy4;
00057 int dummy5;
00058 int dummy6;
00059 int dummy7;
00060 int dummy8;
00061 int dummy9;
00062 int dummy10;
00063 int dummy11;
00064 int pad1;
00065 void *pad2;
00066 void *pad3;
00067 };
00068
00069 DBUS_EXPORT
00070 DBusMessage* dbus_message_new (int message_type);
00071 DBUS_EXPORT
00072 DBusMessage* dbus_message_new_method_call (const char *bus_name,
00073 const char *path,
00074 const char *iface,
00075 const char *method);
00076 DBUS_EXPORT
00077 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call);
00078 DBUS_EXPORT
00079 DBusMessage* dbus_message_new_signal (const char *path,
00080 const char *iface,
00081 const char *name);
00082 DBUS_EXPORT
00083 DBusMessage* dbus_message_new_error (DBusMessage *reply_to,
00084 const char *error_name,
00085 const char *error_message);
00086 DBUS_EXPORT
00087 DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to,
00088 const char *error_name,
00089 const char *error_format,
00090 ...);
00091
00092 DBUS_EXPORT
00093 DBusMessage* dbus_message_copy (const DBusMessage *message);
00094
00095 DBUS_EXPORT
00096 DBusMessage* dbus_message_ref (DBusMessage *message);
00097 DBUS_EXPORT
00098 void dbus_message_unref (DBusMessage *message);
00099 DBUS_EXPORT
00100 int dbus_message_get_type (DBusMessage *message);
00101 DBUS_EXPORT
00102 dbus_bool_t dbus_message_set_path (DBusMessage *message,
00103 const char *object_path);
00104 DBUS_EXPORT
00105 const char* dbus_message_get_path (DBusMessage *message);
00106 DBUS_EXPORT
00107 dbus_bool_t dbus_message_has_path (DBusMessage *message,
00108 const char *object_path);
00109 DBUS_EXPORT
00110 dbus_bool_t dbus_message_set_interface (DBusMessage *message,
00111 const char *iface);
00112 DBUS_EXPORT
00113 const char* dbus_message_get_interface (DBusMessage *message);
00114 DBUS_EXPORT
00115 dbus_bool_t dbus_message_has_interface (DBusMessage *message,
00116 const char *iface);
00117 DBUS_EXPORT
00118 dbus_bool_t dbus_message_set_member (DBusMessage *message,
00119 const char *member);
00120 DBUS_EXPORT
00121 const char* dbus_message_get_member (DBusMessage *message);
00122 DBUS_EXPORT
00123 dbus_bool_t dbus_message_has_member (DBusMessage *message,
00124 const char *member);
00125 DBUS_EXPORT
00126 dbus_bool_t dbus_message_set_error_name (DBusMessage *message,
00127 const char *name);
00128 DBUS_EXPORT
00129 const char* dbus_message_get_error_name (DBusMessage *message);
00130 DBUS_EXPORT
00131 dbus_bool_t dbus_message_set_destination (DBusMessage *message,
00132 const char *destination);
00133 DBUS_EXPORT
00134 const char* dbus_message_get_destination (DBusMessage *message);
00135 DBUS_EXPORT
00136 dbus_bool_t dbus_message_set_sender (DBusMessage *message,
00137 const char *sender);
00138 DBUS_EXPORT
00139 const char* dbus_message_get_sender (DBusMessage *message);
00140 DBUS_EXPORT
00141 const char* dbus_message_get_signature (DBusMessage *message);
00142 DBUS_EXPORT
00143 void dbus_message_set_no_reply (DBusMessage *message,
00144 dbus_bool_t no_reply);
00145 DBUS_EXPORT
00146 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message);
00147 DBUS_EXPORT
00148 dbus_bool_t dbus_message_is_method_call (DBusMessage *message,
00149 const char *iface,
00150 const char *method);
00151 DBUS_EXPORT
00152 dbus_bool_t dbus_message_is_signal (DBusMessage *message,
00153 const char *iface,
00154 const char *signal_name);
00155 DBUS_EXPORT
00156 dbus_bool_t dbus_message_is_error (DBusMessage *message,
00157 const char *error_name);
00158 DBUS_EXPORT
00159 dbus_bool_t dbus_message_has_destination (DBusMessage *message,
00160 const char *bus_name);
00161 DBUS_EXPORT
00162 dbus_bool_t dbus_message_has_sender (DBusMessage *message,
00163 const char *unique_bus_name);
00164 DBUS_EXPORT
00165 dbus_bool_t dbus_message_has_signature (DBusMessage *message,
00166 const char *signature);
00167 DBUS_EXPORT
00168 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
00169 DBUS_EXPORT
00170 void dbus_message_set_serial (DBusMessage *message,
00171 dbus_uint32_t serial);
00172 DBUS_EXPORT
00173 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
00174 dbus_uint32_t reply_serial);
00175 DBUS_EXPORT
00176 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
00177
00178 DBUS_EXPORT
00179 void dbus_message_set_auto_start (DBusMessage *message,
00180 dbus_bool_t auto_start);
00181 DBUS_EXPORT
00182 dbus_bool_t dbus_message_get_auto_start (DBusMessage *message);
00183
00184 DBUS_EXPORT
00185 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message,
00186 char ***path);
00187
00188 DBUS_EXPORT
00189 dbus_bool_t dbus_message_append_args (DBusMessage *message,
00190 int first_arg_type,
00191 ...);
00192 DBUS_EXPORT
00193 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
00194 int first_arg_type,
00195 va_list var_args);
00196 DBUS_EXPORT
00197 dbus_bool_t dbus_message_get_args (DBusMessage *message,
00198 DBusError *error,
00199 int first_arg_type,
00200 ...);
00201 DBUS_EXPORT
00202 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
00203 DBusError *error,
00204 int first_arg_type,
00205 va_list var_args);
00206
00207 DBUS_EXPORT
00208 dbus_bool_t dbus_message_contains_unix_fds (DBusMessage *message);
00209
00210 DBUS_EXPORT
00211 dbus_bool_t dbus_message_iter_init (DBusMessage *message,
00212 DBusMessageIter *iter);
00213 DBUS_EXPORT
00214 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
00215 DBUS_EXPORT
00216 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
00217 DBUS_EXPORT
00218 char* dbus_message_iter_get_signature (DBusMessageIter *iter);
00219 DBUS_EXPORT
00220 int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
00221 DBUS_EXPORT
00222 int dbus_message_iter_get_element_type (DBusMessageIter *iter);
00223 DBUS_EXPORT
00224 void dbus_message_iter_recurse (DBusMessageIter *iter,
00225 DBusMessageIter *sub);
00226 DBUS_EXPORT
00227 void dbus_message_iter_get_basic (DBusMessageIter *iter,
00228 void *value);
00229 DBUS_EXPORT
00230 int dbus_message_iter_get_element_count(DBusMessageIter *iter);
00231
00232 #ifndef DBUS_DISABLE_DEPRECATED
00233
00234
00235
00236 DBUS_EXPORT
00237 DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter);
00238 #endif
00239 DBUS_EXPORT
00240 void dbus_message_iter_get_fixed_array (DBusMessageIter *iter,
00241 void *value,
00242 int *n_elements);
00243
00244
00245 DBUS_EXPORT
00246 void dbus_message_iter_init_append (DBusMessage *message,
00247 DBusMessageIter *iter);
00248 DBUS_EXPORT
00249 dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter,
00250 int type,
00251 const void *value);
00252 DBUS_EXPORT
00253 dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter,
00254 int element_type,
00255 const void *value,
00256 int n_elements);
00257 DBUS_EXPORT
00258 dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter,
00259 int type,
00260 const char *contained_signature,
00261 DBusMessageIter *sub);
00262 DBUS_EXPORT
00263 dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter,
00264 DBusMessageIter *sub);
00265 DBUS_EXPORT
00266 void dbus_message_iter_abandon_container (DBusMessageIter *iter,
00267 DBusMessageIter *sub);
00268
00269 DBUS_EXPORT
00270 void dbus_message_lock (DBusMessage *message);
00271
00272 DBUS_EXPORT
00273 dbus_bool_t dbus_set_error_from_message (DBusError *error,
00274 DBusMessage *message);
00275
00276
00277 DBUS_EXPORT
00278 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
00279 DBUS_EXPORT
00280 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
00281 DBUS_EXPORT
00282 dbus_bool_t dbus_message_set_data (DBusMessage *message,
00283 dbus_int32_t slot,
00284 void *data,
00285 DBusFreeFunction free_data_func);
00286 DBUS_EXPORT
00287 void* dbus_message_get_data (DBusMessage *message,
00288 dbus_int32_t slot);
00289
00290 DBUS_EXPORT
00291 int dbus_message_type_from_string (const char *type_str);
00292 DBUS_EXPORT
00293 const char* dbus_message_type_to_string (int type);
00294
00295 DBUS_EXPORT
00296 dbus_bool_t dbus_message_marshal (DBusMessage *msg,
00297 char **marshalled_data_p,
00298 int *len_p);
00299 DBUS_EXPORT
00300 DBusMessage* dbus_message_demarshal (const char *str,
00301 int len,
00302 DBusError *error);
00303
00304 DBUS_EXPORT
00305 int dbus_message_demarshal_bytes_needed (const char *str,
00306 int len);
00307
00308 DBUS_EXPORT
00309 void dbus_message_set_allow_interactive_authorization (DBusMessage *message,
00310 dbus_bool_t allow);
00311
00312 DBUS_EXPORT
00313 dbus_bool_t dbus_message_get_allow_interactive_authorization (
00314 DBusMessage *message);
00315
00318 DBUS_END_DECLS
00319
00320 #endif