File indexing completed on 2025-12-16 10:12:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
0026 #error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
0027 #endif
0028
0029 #ifndef DBUS_MESSAGE_H
0030 #define DBUS_MESSAGE_H
0031
0032 #include <dbus/dbus-macros.h>
0033 #include <dbus/dbus-types.h>
0034 #include <dbus/dbus-arch-deps.h>
0035 #include <dbus/dbus-memory.h>
0036 #include <dbus/dbus-errors.h>
0037 #include <stdarg.h>
0038
0039 DBUS_BEGIN_DECLS
0040
0041
0042
0043
0044
0045
0046 typedef struct DBusMessage DBusMessage;
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 typedef struct DBusMessageIter DBusMessageIter;
0059
0060
0061
0062
0063 struct DBusMessageIter
0064 {
0065 #if DBUS_SIZEOF_VOID_P > 8
0066 void *dummy[16];
0067 #else
0068 void *dummy1;
0069 void *dummy2;
0070 dbus_uint32_t dummy3;
0071 int dummy4;
0072 int dummy5;
0073 int dummy6;
0074 int dummy7;
0075 int dummy8;
0076 int dummy9;
0077 int dummy10;
0078 int dummy11;
0079 int pad1;
0080 void *pad2;
0081 void *pad3;
0082 #endif
0083 };
0084
0085
0086
0087
0088
0089 #if DBUS_SIZEOF_VOID_P > 8
0090 #define DBUS_MESSAGE_ITER_INIT_CLOSED \
0091 { \
0092 { \
0093 NULL, NULL, NULL, NULL, \
0094 NULL, NULL, NULL, NULL, \
0095 NULL, NULL, NULL, NULL, \
0096 NULL, NULL, NULL, NULL \
0097 } \
0098 }
0099 #else
0100 #define DBUS_MESSAGE_ITER_INIT_CLOSED \
0101 { \
0102 NULL, \
0103 NULL, \
0104 0, \
0105 0, \
0106 0, \
0107 0, \
0108 0, \
0109 0, \
0110 0, \
0111 0, \
0112 0, \
0113 0, \
0114 NULL, \
0115 NULL \
0116 }
0117 #endif
0118
0119 DBUS_EXPORT
0120 DBusMessage* dbus_message_new (int message_type);
0121 DBUS_EXPORT
0122 DBusMessage* dbus_message_new_method_call (const char *bus_name,
0123 const char *path,
0124 const char *iface,
0125 const char *method);
0126 DBUS_EXPORT
0127 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call);
0128 DBUS_EXPORT
0129 DBusMessage* dbus_message_new_signal (const char *path,
0130 const char *iface,
0131 const char *name);
0132 DBUS_EXPORT
0133 DBusMessage* dbus_message_new_error (DBusMessage *reply_to,
0134 const char *error_name,
0135 const char *error_message);
0136 DBUS_EXPORT
0137 DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to,
0138 const char *error_name,
0139 const char *error_format,
0140 ...) _DBUS_GNUC_PRINTF (3, 4);
0141
0142 DBUS_EXPORT
0143 DBusMessage* dbus_message_copy (const DBusMessage *message);
0144
0145 DBUS_EXPORT
0146 DBusMessage* dbus_message_ref (DBusMessage *message);
0147 DBUS_EXPORT
0148 void dbus_message_unref (DBusMessage *message);
0149 DBUS_EXPORT
0150 int dbus_message_get_type (DBusMessage *message);
0151 DBUS_EXPORT
0152 dbus_bool_t dbus_message_set_path (DBusMessage *message,
0153 const char *object_path);
0154 DBUS_EXPORT
0155 const char* dbus_message_get_path (DBusMessage *message);
0156 DBUS_EXPORT
0157 dbus_bool_t dbus_message_has_path (DBusMessage *message,
0158 const char *object_path);
0159 DBUS_EXPORT
0160 dbus_bool_t dbus_message_set_interface (DBusMessage *message,
0161 const char *iface);
0162 DBUS_EXPORT
0163 const char* dbus_message_get_interface (DBusMessage *message);
0164 DBUS_EXPORT
0165 dbus_bool_t dbus_message_has_interface (DBusMessage *message,
0166 const char *iface);
0167 DBUS_EXPORT
0168 dbus_bool_t dbus_message_set_member (DBusMessage *message,
0169 const char *member);
0170 DBUS_EXPORT
0171 const char* dbus_message_get_member (DBusMessage *message);
0172 DBUS_EXPORT
0173 dbus_bool_t dbus_message_has_member (DBusMessage *message,
0174 const char *member);
0175 DBUS_EXPORT
0176 dbus_bool_t dbus_message_set_error_name (DBusMessage *message,
0177 const char *name);
0178 DBUS_EXPORT
0179 const char* dbus_message_get_error_name (DBusMessage *message);
0180 DBUS_EXPORT
0181 dbus_bool_t dbus_message_set_destination (DBusMessage *message,
0182 const char *destination);
0183 DBUS_EXPORT
0184 const char* dbus_message_get_destination (DBusMessage *message);
0185 DBUS_EXPORT
0186 dbus_bool_t dbus_message_set_sender (DBusMessage *message,
0187 const char *sender);
0188 DBUS_EXPORT
0189 const char* dbus_message_get_sender (DBusMessage *message);
0190 DBUS_EXPORT
0191 const char* dbus_message_get_signature (DBusMessage *message);
0192 DBUS_EXPORT
0193 void dbus_message_set_no_reply (DBusMessage *message,
0194 dbus_bool_t no_reply);
0195 DBUS_EXPORT
0196 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message);
0197 DBUS_EXPORT
0198 dbus_bool_t dbus_message_is_method_call (DBusMessage *message,
0199 const char *iface,
0200 const char *method);
0201 DBUS_EXPORT
0202 dbus_bool_t dbus_message_is_signal (DBusMessage *message,
0203 const char *iface,
0204 const char *signal_name);
0205 DBUS_EXPORT
0206 dbus_bool_t dbus_message_is_error (DBusMessage *message,
0207 const char *error_name);
0208 DBUS_EXPORT
0209 dbus_bool_t dbus_message_has_destination (DBusMessage *message,
0210 const char *bus_name);
0211 DBUS_EXPORT
0212 dbus_bool_t dbus_message_has_sender (DBusMessage *message,
0213 const char *unique_bus_name);
0214 DBUS_EXPORT
0215 dbus_bool_t dbus_message_has_signature (DBusMessage *message,
0216 const char *signature);
0217 DBUS_EXPORT
0218 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
0219 DBUS_EXPORT
0220 void dbus_message_set_serial (DBusMessage *message,
0221 dbus_uint32_t serial);
0222 DBUS_EXPORT
0223 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
0224 dbus_uint32_t reply_serial);
0225 DBUS_EXPORT
0226 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
0227
0228 DBUS_EXPORT
0229 void dbus_message_set_auto_start (DBusMessage *message,
0230 dbus_bool_t auto_start);
0231 DBUS_EXPORT
0232 dbus_bool_t dbus_message_get_auto_start (DBusMessage *message);
0233
0234 DBUS_EXPORT
0235 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message,
0236 char ***path);
0237
0238 DBUS_EXPORT
0239 const char *dbus_message_get_container_instance (DBusMessage *message);
0240 DBUS_EXPORT
0241 dbus_bool_t dbus_message_set_container_instance (DBusMessage *message,
0242 const char *object_path);
0243
0244 DBUS_EXPORT
0245 dbus_bool_t dbus_message_append_args (DBusMessage *message,
0246 int first_arg_type,
0247 ...);
0248 DBUS_EXPORT
0249 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
0250 int first_arg_type,
0251 va_list var_args);
0252 DBUS_EXPORT
0253 dbus_bool_t dbus_message_get_args (DBusMessage *message,
0254 DBusError *error,
0255 int first_arg_type,
0256 ...);
0257 DBUS_EXPORT
0258 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
0259 DBusError *error,
0260 int first_arg_type,
0261 va_list var_args);
0262
0263 DBUS_EXPORT
0264 dbus_bool_t dbus_message_contains_unix_fds (DBusMessage *message);
0265
0266 DBUS_EXPORT
0267 void dbus_message_iter_init_closed (DBusMessageIter *iter);
0268 DBUS_EXPORT
0269 dbus_bool_t dbus_message_iter_init (DBusMessage *message,
0270 DBusMessageIter *iter);
0271 DBUS_EXPORT
0272 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
0273 DBUS_EXPORT
0274 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
0275 DBUS_EXPORT
0276 char* dbus_message_iter_get_signature (DBusMessageIter *iter);
0277 DBUS_EXPORT
0278 int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
0279 DBUS_EXPORT
0280 int dbus_message_iter_get_element_type (DBusMessageIter *iter);
0281 DBUS_EXPORT
0282 void dbus_message_iter_recurse (DBusMessageIter *iter,
0283 DBusMessageIter *sub);
0284 DBUS_EXPORT
0285 void dbus_message_iter_get_basic (DBusMessageIter *iter,
0286 void *value);
0287 DBUS_EXPORT
0288 int dbus_message_iter_get_element_count(DBusMessageIter *iter);
0289
0290 #ifndef DBUS_DISABLE_DEPRECATED
0291
0292
0293
0294 DBUS_EXPORT
0295 DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter);
0296 #endif
0297 DBUS_EXPORT
0298 void dbus_message_iter_get_fixed_array (DBusMessageIter *iter,
0299 void *value,
0300 int *n_elements);
0301
0302
0303 DBUS_EXPORT
0304 void dbus_message_iter_init_append (DBusMessage *message,
0305 DBusMessageIter *iter);
0306 DBUS_EXPORT
0307 dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter,
0308 int type,
0309 const void *value);
0310 DBUS_EXPORT
0311 dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter,
0312 int element_type,
0313 const void *value,
0314 int n_elements);
0315 DBUS_EXPORT
0316 dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter,
0317 int type,
0318 const char *contained_signature,
0319 DBusMessageIter *sub);
0320 DBUS_EXPORT
0321 dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter,
0322 DBusMessageIter *sub);
0323 DBUS_EXPORT
0324 void dbus_message_iter_abandon_container (DBusMessageIter *iter,
0325 DBusMessageIter *sub);
0326
0327 DBUS_EXPORT
0328 void dbus_message_iter_abandon_container_if_open (DBusMessageIter *iter,
0329 DBusMessageIter *sub);
0330
0331 DBUS_EXPORT
0332 void dbus_message_lock (DBusMessage *message);
0333
0334 DBUS_EXPORT
0335 dbus_bool_t dbus_set_error_from_message (DBusError *error,
0336 DBusMessage *message);
0337
0338
0339 DBUS_EXPORT
0340 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
0341 DBUS_EXPORT
0342 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
0343 DBUS_EXPORT
0344 dbus_bool_t dbus_message_set_data (DBusMessage *message,
0345 dbus_int32_t slot,
0346 void *data,
0347 DBusFreeFunction free_data_func);
0348 DBUS_EXPORT
0349 void* dbus_message_get_data (DBusMessage *message,
0350 dbus_int32_t slot);
0351
0352 DBUS_EXPORT
0353 int dbus_message_type_from_string (const char *type_str);
0354 DBUS_EXPORT
0355 const char* dbus_message_type_to_string (int type);
0356
0357 DBUS_EXPORT
0358 dbus_bool_t dbus_message_marshal (DBusMessage *msg,
0359 char **marshalled_data_p,
0360 int *len_p);
0361 DBUS_EXPORT
0362 DBusMessage* dbus_message_demarshal (const char *str,
0363 int len,
0364 DBusError *error);
0365
0366 DBUS_EXPORT
0367 int dbus_message_demarshal_bytes_needed (const char *str,
0368 int len);
0369
0370 DBUS_EXPORT
0371 void dbus_message_set_allow_interactive_authorization (DBusMessage *message,
0372 dbus_bool_t allow);
0373
0374 DBUS_EXPORT
0375 dbus_bool_t dbus_message_get_allow_interactive_authorization (
0376 DBusMessage *message);
0377
0378
0379
0380
0381
0382
0383
0384
0385
0386
0387
0388
0389
0390 static inline void
0391 dbus_clear_message (DBusMessage **pointer_to_message)
0392 {
0393 _dbus_clear_pointer_impl (DBusMessage, pointer_to_message,
0394 dbus_message_unref);
0395 }
0396
0397
0398
0399 DBUS_END_DECLS
0400
0401 #endif