dbus-message.h revision 9c3d566e95c9080f6040c64531b0ccae22bd5d74
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.1 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); 75DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to, 76 const char *error_name, 77 const char *error_format, 78 ...); 79 80DBusMessage* dbus_message_copy (const DBusMessage *message); 81 82DBusMessage* dbus_message_ref (DBusMessage *message); 83void dbus_message_unref (DBusMessage *message); 84int dbus_message_get_type (DBusMessage *message); 85dbus_bool_t dbus_message_set_path (DBusMessage *message, 86 const char *object_path); 87const char* dbus_message_get_path (DBusMessage *message); 88dbus_bool_t dbus_message_set_interface (DBusMessage *message, 89 const char *interface); 90const char* dbus_message_get_interface (DBusMessage *message); 91dbus_bool_t dbus_message_set_member (DBusMessage *message, 92 const char *member); 93const char* dbus_message_get_member (DBusMessage *message); 94dbus_bool_t dbus_message_set_error_name (DBusMessage *message, 95 const char *name); 96const char* dbus_message_get_error_name (DBusMessage *message); 97dbus_bool_t dbus_message_set_destination (DBusMessage *message, 98 const char *destination); 99const char* dbus_message_get_destination (DBusMessage *message); 100dbus_bool_t dbus_message_set_sender (DBusMessage *message, 101 const char *sender); 102const char* dbus_message_get_sender (DBusMessage *message); 103const char* dbus_message_get_signature (DBusMessage *message); 104void dbus_message_set_no_reply (DBusMessage *message, 105 dbus_bool_t no_reply); 106dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); 107dbus_bool_t dbus_message_is_method_call (DBusMessage *message, 108 const char *interface, 109 const char *method); 110dbus_bool_t dbus_message_is_signal (DBusMessage *message, 111 const char *interface, 112 const char *signal_name); 113dbus_bool_t dbus_message_is_error (DBusMessage *message, 114 const char *error_name); 115dbus_bool_t dbus_message_has_destination (DBusMessage *message, 116 const char *service); 117dbus_bool_t dbus_message_has_sender (DBusMessage *message, 118 const char *service); 119dbus_bool_t dbus_message_has_signature (DBusMessage *message, 120 const char *signature); 121dbus_uint32_t dbus_message_get_serial (DBusMessage *message); 122dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, 123 dbus_uint32_t reply_serial); 124dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); 125 126void dbus_message_set_auto_activation (DBusMessage *message, 127 dbus_bool_t auto_activation); 128dbus_bool_t dbus_message_get_auto_activation (DBusMessage *message); 129 130dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, 131 char ***path); 132 133dbus_bool_t dbus_message_append_args (DBusMessage *message, 134 int first_arg_type, 135 ...); 136dbus_bool_t dbus_message_append_args_valist (DBusMessage *message, 137 int first_arg_type, 138 va_list var_args); 139dbus_bool_t dbus_message_get_args (DBusMessage *message, 140 DBusError *error, 141 int first_arg_type, 142 ...); 143dbus_bool_t dbus_message_get_args_valist (DBusMessage *message, 144 DBusError *error, 145 int first_arg_type, 146 va_list var_args); 147 148 149dbus_bool_t dbus_message_iter_init (DBusMessage *message, 150 DBusMessageIter *iter); 151dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter); 152dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter); 153int dbus_message_iter_get_arg_type (DBusMessageIter *iter); 154int dbus_message_iter_get_array_type (DBusMessageIter *iter); 155void dbus_message_iter_recurse (DBusMessageIter *iter, 156 DBusMessageIter *sub); 157void dbus_message_iter_get_basic (DBusMessageIter *iter, 158 void *value); 159void dbus_message_iter_get_fixed_array (DBusMessageIter *iter, 160 void *value, 161 int *n_elements); 162 163void dbus_message_append_iter_init (DBusMessage *message, 164 DBusMessageIter *iter); 165dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter, 166 int type, 167 const void *value); 168dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter, 169 int element_type, 170 const void *value, 171 int n_elements); 172dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter, 173 int type, 174 const char *contained_signature, 175 DBusMessageIter *sub); 176dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter, 177 DBusMessageIter *sub); 178 179 180dbus_bool_t dbus_set_error_from_message (DBusError *error, 181 DBusMessage *message); 182 183 184dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p); 185void dbus_message_free_data_slot (dbus_int32_t *slot_p); 186dbus_bool_t dbus_message_set_data (DBusMessage *message, 187 dbus_int32_t slot, 188 void *data, 189 DBusFreeFunction free_data_func); 190void* dbus_message_get_data (DBusMessage *message, 191 dbus_int32_t slot); 192 193int dbus_message_type_from_string (const char *type_str); 194const char * dbus_message_type_to_string (int type); 195 196DBUS_END_DECLS 197 198#endif /* DBUS_MESSAGE_H */ 199