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 <stdarg.h>
00035
00036 DBUS_BEGIN_DECLS;
00037
00038 typedef struct DBusMessage DBusMessage;
00039 typedef struct DBusMessageIter DBusMessageIter;
00040
00041 struct DBusMessageIter
00042 {
00043 void *dummy1;
00044 void *dummy2;
00045 dbus_uint32_t dummy3;
00046 int dummy4;
00047 int dummy5;
00048 int dummy6;
00049 int dummy7;
00050 int dummy8;
00051 int dummy9;
00052 int dummy10;
00053 int dummy11;
00054 int pad1;
00055 int pad2;
00056 void *pad3;
00057 };
00058
00059
00060 DBusMessage* dbus_message_new (const char *name,
00061 const char *destination_service);
00062 DBusMessage* dbus_message_new_reply (DBusMessage *original_message);
00063 DBusMessage* dbus_message_new_error_reply (DBusMessage *original_message,
00064 const char *error_name,
00065 const char *error_message);
00066 DBusMessage *dbus_message_copy (const DBusMessage *message);
00067
00068 void dbus_message_ref (DBusMessage *message);
00069 void dbus_message_unref (DBusMessage *message);
00070 const char* dbus_message_get_name (DBusMessage *message);
00071 const char* dbus_message_get_destination (DBusMessage *message);
00072 dbus_bool_t dbus_message_set_sender (DBusMessage *message,
00073 const char *sender);
00074 const char* dbus_message_get_sender (DBusMessage *message);
00075 void dbus_message_set_is_error (DBusMessage *message,
00076 dbus_bool_t is_error_reply);
00077 dbus_bool_t dbus_message_get_is_error (DBusMessage *message);
00078 dbus_bool_t dbus_message_has_name (DBusMessage *message,
00079 const char *name);
00080 dbus_bool_t dbus_message_has_destination (DBusMessage *message,
00081 const char *service);
00082 dbus_bool_t dbus_message_has_sender (DBusMessage *message,
00083 const char *service);
00084 dbus_uint32_t dbus_message_get_serial (DBusMessage *message);
00085 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message,
00086 dbus_uint32_t reply_serial);
00087 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message);
00088
00089 dbus_bool_t dbus_message_append_args (DBusMessage *message,
00090 int first_arg_type,
00091 ...);
00092 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message,
00093 int first_arg_type,
00094 va_list var_args);
00095 dbus_bool_t dbus_message_get_args (DBusMessage *message,
00096 DBusError *error,
00097 int first_arg_type,
00098 ...);
00099 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message,
00100 DBusError *error,
00101 int first_arg_type,
00102 va_list var_args);
00103 dbus_bool_t dbus_message_iter_get_args (DBusMessageIter *iter,
00104 DBusError *error,
00105 int first_arg_type,
00106 ...);
00107 dbus_bool_t dbus_message_iter_get_args_valist (DBusMessageIter *iter,
00108 DBusError *error,
00109 int first_arg_type,
00110 va_list var_args);
00111
00112
00113
00114 void dbus_message_iter_init (DBusMessage *message,
00115 DBusMessageIter *iter);
00116 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter);
00117 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter);
00118 int dbus_message_iter_get_arg_type (DBusMessageIter *iter);
00119 int dbus_message_iter_get_array_type (DBusMessageIter *iter);
00120 unsigned char dbus_message_iter_get_byte (DBusMessageIter *iter);
00121 dbus_bool_t dbus_message_iter_get_boolean (DBusMessageIter *iter);
00122 dbus_int32_t dbus_message_iter_get_int32 (DBusMessageIter *iter);
00123 dbus_uint32_t dbus_message_iter_get_uint32 (DBusMessageIter *iter);
00124 #ifdef DBUS_HAVE_INT64
00125 dbus_int64_t dbus_message_iter_get_int64 (DBusMessageIter *iter);
00126 dbus_uint64_t dbus_message_iter_get_uint64 (DBusMessageIter *iter);
00127 #endif
00128 double dbus_message_iter_get_double (DBusMessageIter *iter);
00129 char * dbus_message_iter_get_string (DBusMessageIter *iter);
00130 char * dbus_message_iter_get_dict_key (DBusMessageIter *iter);
00131 dbus_bool_t dbus_message_iter_get_named (DBusMessageIter *iter,
00132 char **name,
00133 unsigned char **value,
00134 int *len);
00135
00136 dbus_bool_t dbus_message_iter_init_array_iterator (DBusMessageIter *iter,
00137 DBusMessageIter *array_iter,
00138 int *array_type);
00139 dbus_bool_t dbus_message_iter_init_dict_iterator (DBusMessageIter *iter,
00140 DBusMessageIter *dict_iter);
00141 dbus_bool_t dbus_message_iter_get_byte_array (DBusMessageIter *iter,
00142 unsigned char **value,
00143 int *len);
00144 dbus_bool_t dbus_message_iter_get_boolean_array (DBusMessageIter *iter,
00145 unsigned char **value,
00146 int *len);
00147 dbus_bool_t dbus_message_iter_get_int32_array (DBusMessageIter *iter,
00148 dbus_int32_t **value,
00149 int *len);
00150 dbus_bool_t dbus_message_iter_get_uint32_array (DBusMessageIter *iter,
00151 dbus_uint32_t **value,
00152 int *len);
00153 #ifdef DBUS_HAVE_INT64
00154 dbus_bool_t dbus_message_iter_get_int64_array (DBusMessageIter *iter,
00155 dbus_int64_t **value,
00156 int *len);
00157 dbus_bool_t dbus_message_iter_get_uint64_array (DBusMessageIter *iter,
00158 dbus_uint64_t **value,
00159 int *len);
00160 #endif
00161 dbus_bool_t dbus_message_iter_get_double_array (DBusMessageIter *iter,
00162 double **value,
00163 int *len);
00164 dbus_bool_t dbus_message_iter_get_string_array (DBusMessageIter *iter,
00165 char ***value,
00166 int *len);
00167
00168
00169 void dbus_message_append_iter_init (DBusMessage *message,
00170 DBusMessageIter *iter);
00171 dbus_bool_t dbus_message_iter_append_nil (DBusMessageIter *iter);
00172 dbus_bool_t dbus_message_iter_append_boolean (DBusMessageIter *iter,
00173 dbus_bool_t value);
00174 dbus_bool_t dbus_message_iter_append_byte (DBusMessageIter *iter,
00175 unsigned char value);
00176 dbus_bool_t dbus_message_iter_append_int32 (DBusMessageIter *iter,
00177 dbus_int32_t value);
00178 dbus_bool_t dbus_message_iter_append_uint32 (DBusMessageIter *iter,
00179 dbus_uint32_t value);
00180 #ifdef DBUS_HAVE_INT64
00181 dbus_bool_t dbus_message_iter_append_int64 (DBusMessageIter *iter,
00182 dbus_int64_t value);
00183 dbus_bool_t dbus_message_iter_append_uint64 (DBusMessageIter *iter,
00184 dbus_uint64_t value);
00185 #endif
00186 dbus_bool_t dbus_message_iter_append_double (DBusMessageIter *iter,
00187 double value);
00188 dbus_bool_t dbus_message_iter_append_string (DBusMessageIter *iter,
00189 const char *value);
00190 dbus_bool_t dbus_message_iter_append_named (DBusMessageIter *iter,
00191 const char *name,
00192 const unsigned char *data,
00193 int len);
00194 dbus_bool_t dbus_message_iter_append_dict_key (DBusMessageIter *iter,
00195 const char *value);
00196 dbus_bool_t dbus_message_iter_append_array (DBusMessageIter *iter,
00197 DBusMessageIter *array_iter,
00198 int element_type);
00199 dbus_bool_t dbus_message_iter_append_dict (DBusMessageIter *iter,
00200 DBusMessageIter *dict_iter);
00201
00202
00203 dbus_bool_t dbus_message_iter_append_boolean_array (DBusMessageIter *iter,
00204 unsigned const char *value,
00205 int len);
00206 dbus_bool_t dbus_message_iter_append_int32_array (DBusMessageIter *iter,
00207 const dbus_int32_t *value,
00208 int len);
00209 dbus_bool_t dbus_message_iter_append_uint32_array (DBusMessageIter *iter,
00210 const dbus_uint32_t *value,
00211 int len);
00212 #ifdef DBUS_HAVE_INT64
00213 dbus_bool_t dbus_message_iter_append_int64_array (DBusMessageIter *iter,
00214 const dbus_int64_t *value,
00215 int len);
00216 dbus_bool_t dbus_message_iter_append_uint64_array (DBusMessageIter *iter,
00217 const dbus_uint64_t *value,
00218 int len);
00219 #endif
00220 dbus_bool_t dbus_message_iter_append_double_array (DBusMessageIter *iter,
00221 const double *value,
00222 int len);
00223 dbus_bool_t dbus_message_iter_append_byte_array (DBusMessageIter *iter,
00224 unsigned const char *value,
00225 int len);
00226 dbus_bool_t dbus_message_iter_append_string_array (DBusMessageIter *iter,
00227 const char **value,
00228 int len);
00229
00230
00231
00232 dbus_bool_t dbus_set_error_from_message (DBusError *error,
00233 DBusMessage *message);
00234
00235
00236 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p);
00237 void dbus_message_free_data_slot (dbus_int32_t *slot_p);
00238 dbus_bool_t dbus_message_set_data (DBusMessage *message,
00239 dbus_int32_t slot,
00240 void *data,
00241 DBusFreeFunction free_data_func);
00242 void* dbus_message_get_data (DBusMessage *message,
00243 dbus_int32_t slot);
00244
00245 DBUS_END_DECLS;
00246
00247 #endif