D-Bus
1.10.12
|
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 void *pad2; 00066 void *pad3; 00067 }; 00068 00069 DBUS_EXPORT 00070 DBusMessage* dbus_message_new (int message_type); 00071 DBUS_EXPORT 00072 DBusMessage* dbus_message_new_method_call (const char *bus_name, 00073 const char *path, 00074 const char *iface, 00075 const char *method); 00076 DBUS_EXPORT 00077 DBusMessage* dbus_message_new_method_return (DBusMessage *method_call); 00078 DBUS_EXPORT 00079 DBusMessage* dbus_message_new_signal (const char *path, 00080 const char *iface, 00081 const char *name); 00082 DBUS_EXPORT 00083 DBusMessage* dbus_message_new_error (DBusMessage *reply_to, 00084 const char *error_name, 00085 const char *error_message); 00086 DBUS_EXPORT 00087 DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to, 00088 const char *error_name, 00089 const char *error_format, 00090 ...); 00091 00092 DBUS_EXPORT 00093 DBusMessage* dbus_message_copy (const DBusMessage *message); 00094 00095 DBUS_EXPORT 00096 DBusMessage* dbus_message_ref (DBusMessage *message); 00097 DBUS_EXPORT 00098 void dbus_message_unref (DBusMessage *message); 00099 DBUS_EXPORT 00100 int dbus_message_get_type (DBusMessage *message); 00101 DBUS_EXPORT 00102 dbus_bool_t dbus_message_set_path (DBusMessage *message, 00103 const char *object_path); 00104 DBUS_EXPORT 00105 const char* dbus_message_get_path (DBusMessage *message); 00106 DBUS_EXPORT 00107 dbus_bool_t dbus_message_has_path (DBusMessage *message, 00108 const char *object_path); 00109 DBUS_EXPORT 00110 dbus_bool_t dbus_message_set_interface (DBusMessage *message, 00111 const char *iface); 00112 DBUS_EXPORT 00113 const char* dbus_message_get_interface (DBusMessage *message); 00114 DBUS_EXPORT 00115 dbus_bool_t dbus_message_has_interface (DBusMessage *message, 00116 const char *iface); 00117 DBUS_EXPORT 00118 dbus_bool_t dbus_message_set_member (DBusMessage *message, 00119 const char *member); 00120 DBUS_EXPORT 00121 const char* dbus_message_get_member (DBusMessage *message); 00122 DBUS_EXPORT 00123 dbus_bool_t dbus_message_has_member (DBusMessage *message, 00124 const char *member); 00125 DBUS_EXPORT 00126 dbus_bool_t dbus_message_set_error_name (DBusMessage *message, 00127 const char *name); 00128 DBUS_EXPORT 00129 const char* dbus_message_get_error_name (DBusMessage *message); 00130 DBUS_EXPORT 00131 dbus_bool_t dbus_message_set_destination (DBusMessage *message, 00132 const char *destination); 00133 DBUS_EXPORT 00134 const char* dbus_message_get_destination (DBusMessage *message); 00135 DBUS_EXPORT 00136 dbus_bool_t dbus_message_set_sender (DBusMessage *message, 00137 const char *sender); 00138 DBUS_EXPORT 00139 const char* dbus_message_get_sender (DBusMessage *message); 00140 DBUS_EXPORT 00141 const char* dbus_message_get_signature (DBusMessage *message); 00142 DBUS_EXPORT 00143 void dbus_message_set_no_reply (DBusMessage *message, 00144 dbus_bool_t no_reply); 00145 DBUS_EXPORT 00146 dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); 00147 DBUS_EXPORT 00148 dbus_bool_t dbus_message_is_method_call (DBusMessage *message, 00149 const char *iface, 00150 const char *method); 00151 DBUS_EXPORT 00152 dbus_bool_t dbus_message_is_signal (DBusMessage *message, 00153 const char *iface, 00154 const char *signal_name); 00155 DBUS_EXPORT 00156 dbus_bool_t dbus_message_is_error (DBusMessage *message, 00157 const char *error_name); 00158 DBUS_EXPORT 00159 dbus_bool_t dbus_message_has_destination (DBusMessage *message, 00160 const char *bus_name); 00161 DBUS_EXPORT 00162 dbus_bool_t dbus_message_has_sender (DBusMessage *message, 00163 const char *unique_bus_name); 00164 DBUS_EXPORT 00165 dbus_bool_t dbus_message_has_signature (DBusMessage *message, 00166 const char *signature); 00167 DBUS_EXPORT 00168 dbus_uint32_t dbus_message_get_serial (DBusMessage *message); 00169 DBUS_EXPORT 00170 void dbus_message_set_serial (DBusMessage *message, 00171 dbus_uint32_t serial); 00172 DBUS_EXPORT 00173 dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, 00174 dbus_uint32_t reply_serial); 00175 DBUS_EXPORT 00176 dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); 00177 00178 DBUS_EXPORT 00179 void dbus_message_set_auto_start (DBusMessage *message, 00180 dbus_bool_t auto_start); 00181 DBUS_EXPORT 00182 dbus_bool_t dbus_message_get_auto_start (DBusMessage *message); 00183 00184 DBUS_EXPORT 00185 dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, 00186 char ***path); 00187 00188 DBUS_EXPORT 00189 dbus_bool_t dbus_message_append_args (DBusMessage *message, 00190 int first_arg_type, 00191 ...); 00192 DBUS_EXPORT 00193 dbus_bool_t dbus_message_append_args_valist (DBusMessage *message, 00194 int first_arg_type, 00195 va_list var_args); 00196 DBUS_EXPORT 00197 dbus_bool_t dbus_message_get_args (DBusMessage *message, 00198 DBusError *error, 00199 int first_arg_type, 00200 ...); 00201 DBUS_EXPORT 00202 dbus_bool_t dbus_message_get_args_valist (DBusMessage *message, 00203 DBusError *error, 00204 int first_arg_type, 00205 va_list var_args); 00206 00207 DBUS_EXPORT 00208 dbus_bool_t dbus_message_contains_unix_fds (DBusMessage *message); 00209 00210 DBUS_EXPORT 00211 dbus_bool_t dbus_message_iter_init (DBusMessage *message, 00212 DBusMessageIter *iter); 00213 DBUS_EXPORT 00214 dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter); 00215 DBUS_EXPORT 00216 dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter); 00217 DBUS_EXPORT 00218 char* dbus_message_iter_get_signature (DBusMessageIter *iter); 00219 DBUS_EXPORT 00220 int dbus_message_iter_get_arg_type (DBusMessageIter *iter); 00221 DBUS_EXPORT 00222 int dbus_message_iter_get_element_type (DBusMessageIter *iter); 00223 DBUS_EXPORT 00224 void dbus_message_iter_recurse (DBusMessageIter *iter, 00225 DBusMessageIter *sub); 00226 DBUS_EXPORT 00227 void dbus_message_iter_get_basic (DBusMessageIter *iter, 00228 void *value); 00229 DBUS_EXPORT 00230 int dbus_message_iter_get_element_count(DBusMessageIter *iter); 00231 00232 #ifndef DBUS_DISABLE_DEPRECATED 00233 /* This function returns the wire protocol size of the array in bytes, 00234 * you do not want to know that probably 00235 */ 00236 DBUS_EXPORT 00237 DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter); 00238 #endif 00239 DBUS_EXPORT 00240 void dbus_message_iter_get_fixed_array (DBusMessageIter *iter, 00241 void *value, 00242 int *n_elements); 00243 00244 00245 DBUS_EXPORT 00246 void dbus_message_iter_init_append (DBusMessage *message, 00247 DBusMessageIter *iter); 00248 DBUS_EXPORT 00249 dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter, 00250 int type, 00251 const void *value); 00252 DBUS_EXPORT 00253 dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter, 00254 int element_type, 00255 const void *value, 00256 int n_elements); 00257 DBUS_EXPORT 00258 dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter, 00259 int type, 00260 const char *contained_signature, 00261 DBusMessageIter *sub); 00262 DBUS_EXPORT 00263 dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter, 00264 DBusMessageIter *sub); 00265 DBUS_EXPORT 00266 void dbus_message_iter_abandon_container (DBusMessageIter *iter, 00267 DBusMessageIter *sub); 00268 00269 DBUS_EXPORT 00270 void dbus_message_lock (DBusMessage *message); 00271 00272 DBUS_EXPORT 00273 dbus_bool_t dbus_set_error_from_message (DBusError *error, 00274 DBusMessage *message); 00275 00276 00277 DBUS_EXPORT 00278 dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p); 00279 DBUS_EXPORT 00280 void dbus_message_free_data_slot (dbus_int32_t *slot_p); 00281 DBUS_EXPORT 00282 dbus_bool_t dbus_message_set_data (DBusMessage *message, 00283 dbus_int32_t slot, 00284 void *data, 00285 DBusFreeFunction free_data_func); 00286 DBUS_EXPORT 00287 void* dbus_message_get_data (DBusMessage *message, 00288 dbus_int32_t slot); 00289 00290 DBUS_EXPORT 00291 int dbus_message_type_from_string (const char *type_str); 00292 DBUS_EXPORT 00293 const char* dbus_message_type_to_string (int type); 00294 00295 DBUS_EXPORT 00296 dbus_bool_t dbus_message_marshal (DBusMessage *msg, 00297 char **marshalled_data_p, 00298 int *len_p); 00299 DBUS_EXPORT 00300 DBusMessage* dbus_message_demarshal (const char *str, 00301 int len, 00302 DBusError *error); 00303 00304 DBUS_EXPORT 00305 int dbus_message_demarshal_bytes_needed (const char *str, 00306 int len); 00307 00308 DBUS_EXPORT 00309 void dbus_message_set_allow_interactive_authorization (DBusMessage *message, 00310 dbus_bool_t allow); 00311 00312 DBUS_EXPORT 00313 dbus_bool_t dbus_message_get_allow_interactive_authorization ( 00314 DBusMessage *message); 00315 00318 DBUS_END_DECLS 00319 00320 #endif /* DBUS_MESSAGE_H */