dbus-message.h revision 93f433a17a0aabff91a0384bf9c4f99c9cf30ae1
1/* -*- mode: C; c-file-style: "gnu" -*- */ 2/* dbus-message.h DBusMessage object 3 * 4 * Copyright (C) 2002, 2003 Red Hat Inc. 5 * 6 * Licensed under the Academic Free License version 2.0 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 37DBUS_BEGIN_DECLS; 38 39typedef struct DBusMessage DBusMessage; 40typedef struct DBusMessageIter DBusMessageIter; 41 42/** 43 * DBusMessageIter struct; contains no public fields 44 */ 45struct DBusMessageIter 46{ 47 void *dummy1; /**< Don't use this */ 48 void *dummy2; /**< Don't use this */ 49 dbus_uint32_t dummy3; /**< Don't use this */ 50 int dummy4; /**< Don't use this */ 51 int dummy5; /**< Don't use this */ 52 int dummy6; /**< Don't use this */ 53 int dummy7; /**< Don't use this */ 54 int dummy8; /**< Don't use this */ 55 int dummy9; /**< Don't use this */ 56 int dummy10; /**< Don't use this */ 57 int dummy11; /**< Don't use this */ 58 int pad1; /**< Don't use this */ 59 int pad2; /**< Don't use this */ 60 void *pad3; /**< Don't use this */ 61}; 62 63DBusMessage* dbus_message_new (int message_type); 64DBusMessage* dbus_message_new_method_call (const char *service, 65 const char *path, 66 const char *interface, 67 const char *method); 68DBusMessage* dbus_message_new_method_return (DBusMessage *method_call); 69DBusMessage* dbus_message_new_signal (const char *path, 70 const char *interface, 71 const char *name); 72DBusMessage* dbus_message_new_error (DBusMessage *reply_to, 73 const char *error_name, 74 const char *error_message); 75 76DBusMessage* dbus_message_copy (const DBusMessage *message); 77 78DBusMessage* dbus_message_ref (DBusMessage *message); 79void dbus_message_unref (DBusMessage *message); 80int dbus_message_get_type (DBusMessage *message); 81dbus_bool_t dbus_message_set_path (DBusMessage *message, 82 const char *object_path); 83const char* dbus_message_get_path (DBusMessage *message); 84dbus_bool_t dbus_message_set_interface (DBusMessage *message, 85 const char *interface); 86const char* dbus_message_get_interface (DBusMessage *message); 87dbus_bool_t dbus_message_set_member (DBusMessage *message, 88 const char *member); 89const char* dbus_message_get_member (DBusMessage *message); 90dbus_bool_t dbus_message_set_error_name (DBusMessage *message, 91 const char *name); 92const char* dbus_message_get_error_name (DBusMessage *message); 93dbus_bool_t dbus_message_set_destination (DBusMessage *message, 94 const char *destination); 95const char* dbus_message_get_destination (DBusMessage *message); 96dbus_bool_t dbus_message_set_sender (DBusMessage *message, 97 const char *sender); 98const char* dbus_message_get_sender (DBusMessage *message); 99const char* dbus_message_get_signature (DBusMessage *message); 100void dbus_message_set_no_reply (DBusMessage *message, 101 dbus_bool_t no_reply); 102dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); 103dbus_bool_t dbus_message_is_method_call (DBusMessage *message, 104 const char *interface, 105 const char *method); 106dbus_bool_t dbus_message_is_signal (DBusMessage *message, 107 const char *interface, 108 const char *signal_name); 109dbus_bool_t dbus_message_is_error (DBusMessage *message, 110 const char *error_name); 111dbus_bool_t dbus_message_has_destination (DBusMessage *message, 112 const char *service); 113dbus_bool_t dbus_message_has_sender (DBusMessage *message, 114 const char *service); 115dbus_bool_t dbus_message_has_signature (DBusMessage *message, 116 const char *signature); 117dbus_uint32_t dbus_message_get_serial (DBusMessage *message); 118dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, 119 dbus_uint32_t reply_serial); 120dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); 121 122void dbus_message_set_auto_activation (DBusMessage *message, 123 dbus_bool_t auto_activation); 124dbus_bool_t dbus_message_get_auto_activation (DBusMessage *message); 125 126dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, 127 char ***path); 128 129dbus_bool_t dbus_message_append_args (DBusMessage *message, 130 int first_arg_type, 131 ...); 132dbus_bool_t dbus_message_append_args_valist (DBusMessage *message, 133 int first_arg_type, 134 va_list var_args); 135dbus_bool_t dbus_message_get_args (DBusMessage *message, 136 DBusError *error, 137 int first_arg_type, 138 ...); 139dbus_bool_t dbus_message_get_args_valist (DBusMessage *message, 140 DBusError *error, 141 int first_arg_type, 142 va_list var_args); 143dbus_bool_t dbus_message_iter_get_args (DBusMessageIter *iter, 144 DBusError *error, 145 int first_arg_type, 146 ...); 147dbus_bool_t dbus_message_iter_get_args_valist (DBusMessageIter *iter, 148 DBusError *error, 149 int first_arg_type, 150 va_list var_args); 151 152 153void dbus_message_iter_init (DBusMessage *message, 154 DBusMessageIter *iter); 155dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter); 156dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter); 157int dbus_message_iter_get_arg_type (DBusMessageIter *iter); 158int dbus_message_iter_get_array_type (DBusMessageIter *iter); 159unsigned char dbus_message_iter_get_byte (DBusMessageIter *iter); 160dbus_bool_t dbus_message_iter_get_boolean (DBusMessageIter *iter); 161dbus_int32_t dbus_message_iter_get_int32 (DBusMessageIter *iter); 162dbus_uint32_t dbus_message_iter_get_uint32 (DBusMessageIter *iter); 163#ifdef DBUS_HAVE_INT64 164dbus_int64_t dbus_message_iter_get_int64 (DBusMessageIter *iter); 165dbus_uint64_t dbus_message_iter_get_uint64 (DBusMessageIter *iter); 166#endif /* DBUS_HAVE_INT64 */ 167double dbus_message_iter_get_double (DBusMessageIter *iter); 168char * dbus_message_iter_get_string (DBusMessageIter *iter); 169char * dbus_message_iter_get_object_path (DBusMessageIter *iter); 170char * dbus_message_iter_get_dict_key (DBusMessageIter *iter); 171dbus_bool_t dbus_message_iter_get_custom (DBusMessageIter *iter, 172 char **name, 173 unsigned char **value, 174 int *len); 175 176void dbus_message_iter_init_array_iterator (DBusMessageIter *iter, 177 DBusMessageIter *array_iter, 178 int *array_type); 179void dbus_message_iter_init_dict_iterator (DBusMessageIter *iter, 180 DBusMessageIter *dict_iter); 181dbus_bool_t dbus_message_iter_get_byte_array (DBusMessageIter *iter, 182 unsigned char **value, 183 int *len); 184dbus_bool_t dbus_message_iter_get_boolean_array (DBusMessageIter *iter, 185 unsigned char **value, 186 int *len); 187dbus_bool_t dbus_message_iter_get_int32_array (DBusMessageIter *iter, 188 dbus_int32_t **value, 189 int *len); 190dbus_bool_t dbus_message_iter_get_uint32_array (DBusMessageIter *iter, 191 dbus_uint32_t **value, 192 int *len); 193#ifdef DBUS_HAVE_INT64 194dbus_bool_t dbus_message_iter_get_int64_array (DBusMessageIter *iter, 195 dbus_int64_t **value, 196 int *len); 197dbus_bool_t dbus_message_iter_get_uint64_array (DBusMessageIter *iter, 198 dbus_uint64_t **value, 199 int *len); 200#endif /* DBUS_HAVE_INT64 */ 201dbus_bool_t dbus_message_iter_get_double_array (DBusMessageIter *iter, 202 double **value, 203 int *len); 204dbus_bool_t dbus_message_iter_get_string_array (DBusMessageIter *iter, 205 char ***value, 206 int *len); 207dbus_bool_t dbus_message_iter_get_object_path_array (DBusMessageIter *iter, 208 char ***value, 209 int *len); 210 211 212void dbus_message_append_iter_init (DBusMessage *message, 213 DBusMessageIter *iter); 214dbus_bool_t dbus_message_iter_append_nil (DBusMessageIter *iter); 215dbus_bool_t dbus_message_iter_append_boolean (DBusMessageIter *iter, 216 dbus_bool_t value); 217dbus_bool_t dbus_message_iter_append_byte (DBusMessageIter *iter, 218 unsigned char value); 219dbus_bool_t dbus_message_iter_append_int32 (DBusMessageIter *iter, 220 dbus_int32_t value); 221dbus_bool_t dbus_message_iter_append_uint32 (DBusMessageIter *iter, 222 dbus_uint32_t value); 223#ifdef DBUS_HAVE_INT64 224dbus_bool_t dbus_message_iter_append_int64 (DBusMessageIter *iter, 225 dbus_int64_t value); 226dbus_bool_t dbus_message_iter_append_uint64 (DBusMessageIter *iter, 227 dbus_uint64_t value); 228#endif /* DBUS_HAVE_INT64 */ 229dbus_bool_t dbus_message_iter_append_double (DBusMessageIter *iter, 230 double value); 231dbus_bool_t dbus_message_iter_append_string (DBusMessageIter *iter, 232 const char *value); 233dbus_bool_t dbus_message_iter_append_custom (DBusMessageIter *iter, 234 const char *name, 235 const unsigned char *data, 236 int len); 237dbus_bool_t dbus_message_iter_append_dict_key (DBusMessageIter *iter, 238 const char *value); 239dbus_bool_t dbus_message_iter_append_array (DBusMessageIter *iter, 240 DBusMessageIter *array_iter, 241 int element_type); 242dbus_bool_t dbus_message_iter_append_dict (DBusMessageIter *iter, 243 DBusMessageIter *dict_iter); 244 245/* Helpers for normal types: */ 246dbus_bool_t dbus_message_iter_append_boolean_array (DBusMessageIter *iter, 247 unsigned const char *value, 248 int len); 249dbus_bool_t dbus_message_iter_append_int32_array (DBusMessageIter *iter, 250 const dbus_int32_t *value, 251 int len); 252dbus_bool_t dbus_message_iter_append_uint32_array (DBusMessageIter *iter, 253 const dbus_uint32_t *value, 254 int len); 255#ifdef DBUS_HAVE_INT64 256dbus_bool_t dbus_message_iter_append_int64_array (DBusMessageIter *iter, 257 const dbus_int64_t *value, 258 int len); 259dbus_bool_t dbus_message_iter_append_uint64_array (DBusMessageIter *iter, 260 const dbus_uint64_t *value, 261 int len); 262#endif /* DBUS_HAVE_INT64 */ 263dbus_bool_t dbus_message_iter_append_double_array (DBusMessageIter *iter, 264 const double *value, 265 int len); 266dbus_bool_t dbus_message_iter_append_byte_array (DBusMessageIter *iter, 267 unsigned const char *value, 268 int len); 269dbus_bool_t dbus_message_iter_append_string_array (DBusMessageIter *iter, 270 const char **value, 271 int len); 272 273 274 275dbus_bool_t dbus_set_error_from_message (DBusError *error, 276 DBusMessage *message); 277 278 279dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p); 280void dbus_message_free_data_slot (dbus_int32_t *slot_p); 281dbus_bool_t dbus_message_set_data (DBusMessage *message, 282 dbus_int32_t slot, 283 void *data, 284 DBusFreeFunction free_data_func); 285void* dbus_message_get_data (DBusMessage *message, 286 dbus_int32_t slot); 287 288int dbus_message_type_from_string (const char *type_str); 289 290DBUS_END_DECLS; 291 292#endif /* DBUS_MESSAGE_H */ 293