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
00039 typedef struct DBusMessage DBusMessage;
00040 typedef struct DBusMessageIter DBusMessageIter;
00041
00045 struct DBusMessageIter
00046 {
00047 void *dummy1;
00048 void *dummy2;
00049 dbus_uint32_t dummy3;
00050 int dummy4;
00051 int dummy5;
00052 int dummy6;
00053 int dummy7;
00054 int dummy8;
00055 int dummy9;
00056 int dummy10;
00057 int dummy11;
00058 int pad1;
00059 int pad2;
00060 void *pad3;
00061 };
00062
00063 DBusMessage* dbus_message_new (int message_type);
00064 DBusMessage* dbus_message_new_method_call (const char *service,
00065 const char *path,
00066 const char *interface,
00067 const char *method);
00068 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call);
00069 DBusMessage* dbus_message_new_signal (const char *path,
00070 const char *interface,
00071 const char *name);
00072 DBusMessage* dbus_message_new_error (DBusMessage *reply_to,
00073 const char *error_name,
00074 const char *error_message);
00075
00076 DBusMessage *dbus_message_copy (const DBusMessage *message);
00077
00078 void dbus_message_ref (DBusMessage *message);
00079 void dbus_message_unref (DBusMessage *message);
00080 int dbus_message_get_type (DBusMessage *message);
00081 dbus_bool_t dbus_message_set_path (DBusMessage *message,
00082 const char *object_path);
00083 const char* dbus_message_get_path (DBusMessage *message);
00084 dbus_bool_t dbus_message_set_interface (DBusMessage *message,
00085 const char *interface);
00086 const char* dbus_message_get_interface (DBusMessage *message);
00087 dbus_bool_t dbus_message_set_member (DBusMessage *message,
00088 const char *member);
00089 const char* dbus_message_get_member (DBusMessage *message);
00090 dbus_bool_t dbus_message_set_error_name (DBusMessage *message,
00091 const char *name);
00092 const char* dbus_message_get_error_name (DBusMessage *message);
00093 dbus_bool_t dbus_message_set_destination (DBusMessage *message,
00094 const char *destination);
00095 const char* dbus_message_get_destination (DBusMessage *message);
00096 dbus_bool_t dbus_message_set_sender (DBusMessage *message,
00097 const char *sender);
00098 const char* dbus_message_get_sender (DBusMessage *message);
00099 const char* dbus_message_get_signature (DBusMessage *message);
00100 void dbus_message_set_no_reply (DBusMessage *message,
00101 dbus_bool_t no_reply);
00102 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message);
00103 dbus_bool_t dbus_message_is_method_call (DBusMessage *message,
00104 const char *interface,
00105 const char *method);
00106 dbus_bool_t dbus_message_is_signal (DBusMessage *message,
00107 const char *interface,
00108 const char *signal_name);
00109 dbus_bool_t dbus_message_is_error (DBusMessage *message,
00110 const char *error_name);
00111 dbus_bool_t dbus_message_has_destination (DBusMessage *message,
00112 const char *service);
00113 dbus_bool_t dbus_message_has_sender (DBusMessage *message,
00114 const char *service);
00115 dbus_bool_t dbus_message_has_signature (DBusMessage *message,
00116 const char *signature);
00117 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
00118 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
00119 dbus_uint32_t reply_serial);
00120 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
00121
00122 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message,
00123 char ***path);
00124
00125 dbus_bool_t dbus_message_append_args (DBusMessage *message,
00126 int first_arg_type,
00127 ...);
00128 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
00129 int first_arg_type,
00130 va_list var_args);
00131 dbus_bool_t dbus_message_get_args (DBusMessage *message,
00132 DBusError *error,
00133 int first_arg_type,
00134 ...);
00135 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
00136 DBusError *error,
00137 int first_arg_type,
00138 va_list var_args);
00139 dbus_bool_t dbus_message_iter_get_args (DBusMessageIter *iter,
00140 DBusError *error,
00141 int first_arg_type,
00142 ...);
00143 dbus_bool_t dbus_message_iter_get_args_valist (DBusMessageIter *iter,
00144 DBusError *error,
00145 int first_arg_type,
00146 va_list var_args);
00147
00148
00149 void dbus_message_iter_init (DBusMessage *message,
00150 DBusMessageIter *iter);
00151 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
00152 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
00153 int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
00154 int dbus_message_iter_get_array_type (DBusMessageIter *iter);
00155 unsigned char dbus_message_iter_get_byte (DBusMessageIter *iter);
00156 dbus_bool_t dbus_message_iter_get_boolean (DBusMessageIter *iter);
00157 dbus_int32_t dbus_message_iter_get_int32 (DBusMessageIter *iter);
00158 dbus_uint32_t dbus_message_iter_get_uint32 (DBusMessageIter *iter);
00159 #ifdef DBUS_HAVE_INT64
00160 dbus_int64_t dbus_message_iter_get_int64 (DBusMessageIter *iter);
00161 dbus_uint64_t dbus_message_iter_get_uint64 (DBusMessageIter *iter);
00162 #endif
00163 double dbus_message_iter_get_double (DBusMessageIter *iter);
00164 char * dbus_message_iter_get_string (DBusMessageIter *iter);
00165 char * dbus_message_iter_get_object_path (DBusMessageIter *iter);
00166 char * dbus_message_iter_get_dict_key (DBusMessageIter *iter);
00167 dbus_bool_t dbus_message_iter_get_custom (DBusMessageIter *iter,
00168 char **name,
00169 unsigned char **value,
00170 int *len);
00171
00172 void dbus_message_iter_init_array_iterator (DBusMessageIter *iter,
00173 DBusMessageIter *array_iter,
00174 int *array_type);
00175 void dbus_message_iter_init_dict_iterator (DBusMessageIter *iter,
00176 DBusMessageIter *dict_iter);
00177 dbus_bool_t dbus_message_iter_get_byte_array (DBusMessageIter *iter,
00178 unsigned char **value,
00179 int *len);
00180 dbus_bool_t dbus_message_iter_get_boolean_array (DBusMessageIter *iter,
00181 unsigned char **value,
00182 int *len);
00183 dbus_bool_t dbus_message_iter_get_int32_array (DBusMessageIter *iter,
00184 dbus_int32_t **value,
00185 int *len);
00186 dbus_bool_t dbus_message_iter_get_uint32_array (DBusMessageIter *iter,
00187 dbus_uint32_t **value,
00188 int *len);
00189 #ifdef DBUS_HAVE_INT64
00190 dbus_bool_t dbus_message_iter_get_int64_array (DBusMessageIter *iter,
00191 dbus_int64_t **value,
00192 int *len);
00193 dbus_bool_t dbus_message_iter_get_uint64_array (DBusMessageIter *iter,
00194 dbus_uint64_t **value,
00195 int *len);
00196 #endif
00197 dbus_bool_t dbus_message_iter_get_double_array (DBusMessageIter *iter,
00198 double **value,
00199 int *len);
00200 dbus_bool_t dbus_message_iter_get_string_array (DBusMessageIter *iter,
00201 char ***value,
00202 int *len);
00203 dbus_bool_t dbus_message_iter_get_object_path_array (DBusMessageIter *iter,
00204 char ***value,
00205 int *len);
00206
00207
00208 void dbus_message_append_iter_init (DBusMessage *message,
00209 DBusMessageIter *iter);
00210 dbus_bool_t dbus_message_iter_append_nil (DBusMessageIter *iter);
00211 dbus_bool_t dbus_message_iter_append_boolean (DBusMessageIter *iter,
00212 dbus_bool_t value);
00213 dbus_bool_t dbus_message_iter_append_byte (DBusMessageIter *iter,
00214 unsigned char value);
00215 dbus_bool_t dbus_message_iter_append_int32 (DBusMessageIter *iter,
00216 dbus_int32_t value);
00217 dbus_bool_t dbus_message_iter_append_uint32 (DBusMessageIter *iter,
00218 dbus_uint32_t value);
00219 #ifdef DBUS_HAVE_INT64
00220 dbus_bool_t dbus_message_iter_append_int64 (DBusMessageIter *iter,
00221 dbus_int64_t value);
00222 dbus_bool_t dbus_message_iter_append_uint64 (DBusMessageIter *iter,
00223 dbus_uint64_t value);
00224 #endif
00225 dbus_bool_t dbus_message_iter_append_double (DBusMessageIter *iter,
00226 double value);
00227 dbus_bool_t dbus_message_iter_append_string (DBusMessageIter *iter,
00228 const char *value);
00229 dbus_bool_t dbus_message_iter_append_custom (DBusMessageIter *iter,
00230 const char *name,
00231 const unsigned char *data,
00232 int len);
00233 dbus_bool_t dbus_message_iter_append_dict_key (DBusMessageIter *iter,
00234 const char *value);
00235 dbus_bool_t dbus_message_iter_append_array (DBusMessageIter *iter,
00236 DBusMessageIter *array_iter,
00237 int element_type);
00238 dbus_bool_t dbus_message_iter_append_dict (DBusMessageIter *iter,
00239 DBusMessageIter *dict_iter);
00240
00241
00242 dbus_bool_t dbus_message_iter_append_boolean_array (DBusMessageIter *iter,
00243 unsigned const char *value,
00244 int len);
00245 dbus_bool_t dbus_message_iter_append_int32_array (DBusMessageIter *iter,
00246 const dbus_int32_t *value,
00247 int len);
00248 dbus_bool_t dbus_message_iter_append_uint32_array (DBusMessageIter *iter,
00249 const dbus_uint32_t *value,
00250 int len);
00251 #ifdef DBUS_HAVE_INT64
00252 dbus_bool_t dbus_message_iter_append_int64_array (DBusMessageIter *iter,
00253 const dbus_int64_t *value,
00254 int len);
00255 dbus_bool_t dbus_message_iter_append_uint64_array (DBusMessageIter *iter,
00256 const dbus_uint64_t *value,
00257 int len);
00258 #endif
00259 dbus_bool_t dbus_message_iter_append_double_array (DBusMessageIter *iter,
00260 const double *value,
00261 int len);
00262 dbus_bool_t dbus_message_iter_append_byte_array (DBusMessageIter *iter,
00263 unsigned const char *value,
00264 int len);
00265 dbus_bool_t dbus_message_iter_append_string_array (DBusMessageIter *iter,
00266 const char **value,
00267 int len);
00268
00269
00270
00271 dbus_bool_t dbus_set_error_from_message (DBusError *error,
00272 DBusMessage *message);
00273
00274
00275 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
00276 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
00277 dbus_bool_t dbus_message_set_data (DBusMessage *message,
00278 dbus_int32_t slot,
00279 void *data,
00280 DBusFreeFunction free_data_func);
00281 void* dbus_message_get_data (DBusMessage *message,
00282 dbus_int32_t slot);
00283
00284 int dbus_message_type_from_string (const char *type_str);
00285
00286 DBUS_END_DECLS;
00287
00288 #endif