D-Bus 1.2.24
|
00001 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 00002 /* dbus-message.h DBusMessage object 00003 * 00004 * Copyright (C) 2002, 2003, 2005 Red Hat Inc. 00005 * 00006 * Licensed under the Academic Free License version 2.1 00007 * 00008 * This program is free software; you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published by 00010 * the Free Software Foundation; either version 2 of the License, or 00011 * (at your option) any later version. 00012 * 00013 * This program is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 * GNU General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU General Public License 00019 * along with this program; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 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 00044 typedef struct DBusMessage DBusMessage; 00046 typedef struct DBusMessageIter DBusMessageIter; 00047 00051 struct DBusMessageIter 00052 { 00053 void *dummy1; 00054 void *dummy2; 00055 dbus_uint32_t dummy3; 00056 int dummy4; 00057 int dummy5; 00058 int dummy6; 00059 int dummy7; 00060 int dummy8; 00061 int dummy9; 00062 int dummy10; 00063 int dummy11; 00064 int pad1; 00065 int pad2; 00066 void *pad3; 00067 }; 00068 00069 DBusMessage* dbus_message_new (int message_type); 00070 DBusMessage* dbus_message_new_method_call (const char *bus_name, 00071 const char *path, 00072 const char *interface, 00073 const char *method); 00074 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call); 00075 DBusMessage* dbus_message_new_signal (const char *path, 00076 const char *interface, 00077 const char *name); 00078 DBusMessage* dbus_message_new_error (DBusMessage *reply_to, 00079 const char *error_name, 00080 const char *error_message); 00081 DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to, 00082 const char *error_name, 00083 const char *error_format, 00084 ...); 00085 00086 DBusMessage* dbus_message_copy (const DBusMessage *message); 00087 00088 DBusMessage* dbus_message_ref (DBusMessage *message); 00089 void dbus_message_unref (DBusMessage *message); 00090 int dbus_message_get_type (DBusMessage *message); 00091 dbus_bool_t dbus_message_set_path (DBusMessage *message, 00092 const char *object_path); 00093 const char* dbus_message_get_path (DBusMessage *message); 00094 dbus_bool_t dbus_message_has_path (DBusMessage *message, 00095 const char *object_path); 00096 dbus_bool_t dbus_message_set_interface (DBusMessage *message, 00097 const char *interface); 00098 const char* dbus_message_get_interface (DBusMessage *message); 00099 dbus_bool_t dbus_message_has_interface (DBusMessage *message, 00100 const char *interface); 00101 dbus_bool_t dbus_message_set_member (DBusMessage *message, 00102 const char *member); 00103 const char* dbus_message_get_member (DBusMessage *message); 00104 dbus_bool_t dbus_message_has_member (DBusMessage *message, 00105 const char *member); 00106 dbus_bool_t dbus_message_set_error_name (DBusMessage *message, 00107 const char *name); 00108 const char* dbus_message_get_error_name (DBusMessage *message); 00109 dbus_bool_t dbus_message_set_destination (DBusMessage *message, 00110 const char *destination); 00111 const char* dbus_message_get_destination (DBusMessage *message); 00112 dbus_bool_t dbus_message_set_sender (DBusMessage *message, 00113 const char *sender); 00114 const char* dbus_message_get_sender (DBusMessage *message); 00115 const char* dbus_message_get_signature (DBusMessage *message); 00116 void dbus_message_set_no_reply (DBusMessage *message, 00117 dbus_bool_t no_reply); 00118 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); 00119 dbus_bool_t dbus_message_is_method_call (DBusMessage *message, 00120 const char *interface, 00121 const char *method); 00122 dbus_bool_t dbus_message_is_signal (DBusMessage *message, 00123 const char *interface, 00124 const char *signal_name); 00125 dbus_bool_t dbus_message_is_error (DBusMessage *message, 00126 const char *error_name); 00127 dbus_bool_t dbus_message_has_destination (DBusMessage *message, 00128 const char *bus_name); 00129 dbus_bool_t dbus_message_has_sender (DBusMessage *message, 00130 const char *unique_bus_name); 00131 dbus_bool_t dbus_message_has_signature (DBusMessage *message, 00132 const char *signature); 00133 dbus_uint32_t dbus_message_get_serial (DBusMessage *message); 00134 void dbus_message_set_serial (DBusMessage *message, 00135 dbus_uint32_t serial); 00136 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, 00137 dbus_uint32_t reply_serial); 00138 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); 00139 00140 void dbus_message_set_auto_start (DBusMessage *message, 00141 dbus_bool_t auto_start); 00142 dbus_bool_t dbus_message_get_auto_start (DBusMessage *message); 00143 00144 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, 00145 char ***path); 00146 00147 dbus_bool_t dbus_message_append_args (DBusMessage *message, 00148 int first_arg_type, 00149 ...); 00150 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message, 00151 int first_arg_type, 00152 va_list var_args); 00153 dbus_bool_t dbus_message_get_args (DBusMessage *message, 00154 DBusError *error, 00155 int first_arg_type, 00156 ...); 00157 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message, 00158 DBusError *error, 00159 int first_arg_type, 00160 va_list var_args); 00161 00162 00163 dbus_bool_t dbus_message_iter_init (DBusMessage *message, 00164 DBusMessageIter *iter); 00165 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter); 00166 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter); 00167 char* dbus_message_iter_get_signature (DBusMessageIter *iter); 00168 int dbus_message_iter_get_arg_type (DBusMessageIter *iter); 00169 int dbus_message_iter_get_element_type (DBusMessageIter *iter); 00170 void dbus_message_iter_recurse (DBusMessageIter *iter, 00171 DBusMessageIter *sub); 00172 void dbus_message_iter_get_basic (DBusMessageIter *iter, 00173 void *value); 00174 #ifndef DBUS_DISABLE_DEPRECATED 00175 /* This function returns the wire protocol size of the array in bytes, 00176 * you do not want to know that probably 00177 */ 00178 DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter); 00179 #endif 00180 void dbus_message_iter_get_fixed_array (DBusMessageIter *iter, 00181 void *value, 00182 int *n_elements); 00183 00184 00185 void dbus_message_iter_init_append (DBusMessage *message, 00186 DBusMessageIter *iter); 00187 dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter, 00188 int type, 00189 const void *value); 00190 dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter, 00191 int element_type, 00192 const void *value, 00193 int n_elements); 00194 dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter, 00195 int type, 00196 const char *contained_signature, 00197 DBusMessageIter *sub); 00198 dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter, 00199 DBusMessageIter *sub); 00200 void dbus_message_iter_abandon_container (DBusMessageIter *iter, 00201 DBusMessageIter *sub); 00202 00203 void dbus_message_lock (DBusMessage *message); 00204 00205 dbus_bool_t dbus_set_error_from_message (DBusError *error, 00206 DBusMessage *message); 00207 00208 00209 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p); 00210 void dbus_message_free_data_slot (dbus_int32_t *slot_p); 00211 dbus_bool_t dbus_message_set_data (DBusMessage *message, 00212 dbus_int32_t slot, 00213 void *data, 00214 DBusFreeFunction free_data_func); 00215 void* dbus_message_get_data (DBusMessage *message, 00216 dbus_int32_t slot); 00217 00218 int dbus_message_type_from_string (const char *type_str); 00219 const char* dbus_message_type_to_string (int type); 00220 00221 dbus_bool_t dbus_message_marshal (DBusMessage *msg, 00222 char **marshalled_data_p, 00223 int *len_p); 00224 DBusMessage* dbus_message_demarshal (const char *str, 00225 int len, 00226 DBusError *error); 00227 00228 int dbus_message_demarshal_bytes_needed (const char *str, 00229 int len); 00230 00233 DBUS_END_DECLS 00234 00235 #endif /* DBUS_MESSAGE_H */