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_CONNECTION_H
00028
#define DBUS_CONNECTION_H
00029
00030
#include <dbus/dbus-errors.h>
00031
#include <dbus/dbus-memory.h>
00032
#include <dbus/dbus-message.h>
00033
#include <dbus/dbus-shared.h>
00034
00035
DBUS_BEGIN_DECLS;
00036
00037 typedef struct DBusWatch DBusWatch;
00038 typedef struct DBusTimeout DBusTimeout;
00039
typedef struct DBusPreallocatedSend DBusPreallocatedSend;
00040 typedef struct DBusPendingCall DBusPendingCall;
00041
typedef struct DBusConnection DBusConnection;
00042
typedef struct DBusObjectPathVTable DBusObjectPathVTable;
00043
00044
typedef enum
00045 {
00046 DBUS_WATCH_READABLE = 1 << 0,
00047 DBUS_WATCH_WRITABLE = 1 << 1,
00048 DBUS_WATCH_ERROR = 1 << 2,
00051 DBUS_WATCH_HANGUP = 1 << 3
00053 } DBusWatchFlags;
00054
00055
typedef enum
00056 {
00057 DBUS_DISPATCH_DATA_REMAINS,
00058 DBUS_DISPATCH_COMPLETE,
00059 DBUS_DISPATCH_NEED_MEMORY
00060 } DBusDispatchStatus;
00061
00062
typedef dbus_bool_t (* DBusAddWatchFunction) (
DBusWatch *watch,
00063
void *data);
00064
typedef void (* DBusWatchToggledFunction) (
DBusWatch *watch,
00065
void *data);
00066
typedef void (* DBusRemoveWatchFunction) (
DBusWatch *watch,
00067
void *data);
00068
typedef dbus_bool_t (* DBusAddTimeoutFunction) (
DBusTimeout *timeout,
00069
void *data);
00070
typedef void (* DBusTimeoutToggledFunction) (
DBusTimeout *timeout,
00071
void *data);
00072
typedef void (* DBusRemoveTimeoutFunction) (
DBusTimeout *timeout,
00073
void *data);
00074
typedef void (* DBusDispatchStatusFunction) (DBusConnection *connection,
00075 DBusDispatchStatus new_status,
00076
void *data);
00077
typedef void (* DBusWakeupMainFunction) (
void *data);
00078
typedef dbus_bool_t (* DBusAllowUnixUserFunction) (DBusConnection *connection,
00079
unsigned long uid,
00080
void *data);
00081
00082
typedef void (* DBusPendingCallNotifyFunction) (
DBusPendingCall *pending,
00083
void *user_data);
00084
00085
00086
typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection,
00087
DBusMessage *message,
00088
void *user_data);
00089
00090 DBusConnection*
dbus_connection_open (
const char *address,
00091
DBusError *error);
00092 DBusConnection*
dbus_connection_ref (DBusConnection *connection);
00093
void dbus_connection_unref (DBusConnection *connection);
00094
void dbus_connection_disconnect (DBusConnection *connection);
00095
dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection);
00096
dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection);
00097
void dbus_connection_set_exit_on_disconnect (DBusConnection *connection,
00098 dbus_bool_t exit_on_disconnect);
00099
void dbus_connection_flush (DBusConnection *connection);
00100
DBusMessage*
dbus_connection_borrow_message (DBusConnection *connection);
00101
void dbus_connection_return_message (DBusConnection *connection,
00102
DBusMessage *message);
00103
void dbus_connection_steal_borrowed_message (DBusConnection *connection,
00104
DBusMessage *message);
00105
DBusMessage*
dbus_connection_pop_message (DBusConnection *connection);
00106 DBusDispatchStatus
dbus_connection_get_dispatch_status (DBusConnection *connection);
00107 DBusDispatchStatus
dbus_connection_dispatch (DBusConnection *connection);
00108
dbus_bool_t dbus_connection_send (DBusConnection *connection,
00109
DBusMessage *message,
00110 dbus_uint32_t *client_serial);
00111
dbus_bool_t dbus_connection_send_with_reply (DBusConnection *connection,
00112
DBusMessage *message,
00113 DBusPendingCall **pending_return,
00114
int timeout_milliseconds);
00115
DBusMessage *
dbus_connection_send_with_reply_and_block (DBusConnection *connection,
00116
DBusMessage *message,
00117
int timeout_milliseconds,
00118
DBusError *error);
00119
dbus_bool_t dbus_connection_set_watch_functions (DBusConnection *connection,
00120 DBusAddWatchFunction add_function,
00121 DBusRemoveWatchFunction remove_function,
00122 DBusWatchToggledFunction toggled_function,
00123
void *data,
00124 DBusFreeFunction free_data_function);
00125
dbus_bool_t dbus_connection_set_timeout_functions (DBusConnection *connection,
00126 DBusAddTimeoutFunction add_function,
00127 DBusRemoveTimeoutFunction remove_function,
00128 DBusTimeoutToggledFunction toggled_function,
00129
void *data,
00130 DBusFreeFunction free_data_function);
00131
void dbus_connection_set_wakeup_main_function (DBusConnection *connection,
00132 DBusWakeupMainFunction wakeup_main_function,
00133
void *data,
00134 DBusFreeFunction free_data_function);
00135
void dbus_connection_set_dispatch_status_function (DBusConnection *connection,
00136 DBusDispatchStatusFunction function,
00137
void *data,
00138 DBusFreeFunction free_data_function);
00139
dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection,
00140
unsigned long *uid);
00141
dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection,
00142
unsigned long *pid);
00143
void dbus_connection_set_unix_user_function (DBusConnection *connection,
00144 DBusAllowUnixUserFunction function,
00145
void *data,
00146 DBusFreeFunction free_data_function);
00147
00148
00149
int dbus_watch_get_fd (DBusWatch *watch);
00150
unsigned int dbus_watch_get_flags (DBusWatch *watch);
00151
void*
dbus_watch_get_data (DBusWatch *watch);
00152
void dbus_watch_set_data (DBusWatch *watch,
00153
void *data,
00154 DBusFreeFunction free_data_function);
00155
dbus_bool_t dbus_watch_handle (DBusWatch *watch,
00156
unsigned int flags);
00157
dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch);
00158
00159
int dbus_timeout_get_interval (DBusTimeout *timeout);
00160
void*
dbus_timeout_get_data (DBusTimeout *timeout);
00161
void dbus_timeout_set_data (DBusTimeout *timeout,
00162
void *data,
00163 DBusFreeFunction free_data_function);
00164
dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout);
00165
dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout);
00166
00167
00168
00169
dbus_bool_t dbus_connection_add_filter (DBusConnection *connection,
00170 DBusHandleMessageFunction function,
00171
void *user_data,
00172 DBusFreeFunction free_data_function);
00173
void dbus_connection_remove_filter (DBusConnection *connection,
00174 DBusHandleMessageFunction function,
00175
void *user_data);
00176
00177
00178
00179
dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p);
00180
void dbus_connection_free_data_slot (dbus_int32_t *slot_p);
00181
dbus_bool_t dbus_connection_set_data (DBusConnection *connection,
00182 dbus_int32_t slot,
00183
void *data,
00184 DBusFreeFunction free_data_func);
00185
void*
dbus_connection_get_data (DBusConnection *connection,
00186 dbus_int32_t slot);
00187
00188
void dbus_connection_set_change_sigpipe (dbus_bool_t will_modify_sigpipe);
00189
00190
void dbus_connection_set_max_message_size (DBusConnection *connection,
00191
long size);
00192
long dbus_connection_get_max_message_size (DBusConnection *connection);
00193
void dbus_connection_set_max_received_size (DBusConnection *connection,
00194
long size);
00195
long dbus_connection_get_max_received_size (DBusConnection *connection);
00196
long dbus_connection_get_outgoing_size (DBusConnection *connection);
00197
00198 DBusPreallocatedSend*
dbus_connection_preallocate_send (DBusConnection *connection);
00199
void dbus_connection_free_preallocated_send (DBusConnection *connection,
00200 DBusPreallocatedSend *preallocated);
00201
void dbus_connection_send_preallocated (DBusConnection *connection,
00202 DBusPreallocatedSend *preallocated,
00203
DBusMessage *message,
00204 dbus_uint32_t *client_serial);
00205
00206
00207
00208
00209
typedef void (* DBusObjectPathUnregisterFunction) (DBusConnection *connection,
00210
void *user_data);
00211
typedef DBusHandlerResult (* DBusObjectPathMessageFunction) (DBusConnection *connection,
00212
DBusMessage *message,
00213
void *user_data);
00214
00219 struct DBusObjectPathVTable
00220 {
00221 DBusObjectPathUnregisterFunction
unregister_function;
00222 DBusObjectPathMessageFunction
message_function;
00224 void (* dbus_internal_pad1) (
void *);
00225 void (* dbus_internal_pad2) (
void *);
00226 void (* dbus_internal_pad3) (
void *);
00227 void (* dbus_internal_pad4) (
void *);
00228 };
00229
00230
dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection,
00231
const char *path,
00232
const DBusObjectPathVTable *vtable,
00233
void *user_data);
00234
dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection,
00235
const char *path,
00236
const DBusObjectPathVTable *vtable,
00237
void *user_data);
00238
dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection,
00239
const char *path);
00240
00241
dbus_bool_t dbus_connection_list_registered (DBusConnection *connection,
00242
const char *parent_path,
00243
char ***child_entries);
00244
00245
dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection,
00246
int *fd);
00247
00248
DBUS_END_DECLS;
00249
00250
#endif