00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef EASYDBUS_H
00032 #define EASYDBUS_H
00033
00034 # ifdef __cplusplus
00035 extern "C" {
00036 # endif
00037
00038 enum el_type {
00039 EASYDBUS_ELTYPE_INVALID,
00040 EASYDBUS_ELTYPE_STRING,
00041 EASYDBUS_ELTYPE_ARRAY,
00042 EASYDBUS_ELTYPE_BYTE,
00043 EASYDBUS_ELTYPE_BOOLEAN,
00044 EASYDBUS_ELTYPE_DOUBLE,
00045 EASYDBUS_ELTYPE_INT16,
00046 EASYDBUS_ELTYPE_UINT16,
00047 EASYDBUS_ELTYPE_INT32,
00048 EASYDBUS_ELTYPE_UINT32,
00049 EASYDBUS_ELTYPE_INT64,
00050 EASYDBUS_ELTYPE_UINT64,
00051 EASYDBUS_ELTYPE_OBJECT_PATH,
00052 EASYDBUS_ELTYPE_SIGNATURE,
00053 EASYDBUS_ELTYPE_STRUCT,
00054 EASYDBUS_ELTYPE_VARIANT,
00055 EASYDBUS_ELTYPE_DICT_ENTRY
00056
00057 };
00058
00059 enum event_type {
00060 EASYDBUS_ET_INVALID,
00061 EASYDBUS_ET_METHOD,
00062 EASYDBUS_ET_SIGNAL,
00063 EASYDBUS_ET_REPLY,
00064 EASYDBUS_ET_FAILURE,
00065 };
00066
00067 enum easydbus_bus {
00068 EASYDBUS_INVALID,
00069 EASYDBUS_SESSION,
00070 EASYDBUS_SYSTEM,
00071 EASYDBUS_SESSION_SERVER,
00072 EASYDBUS_SYSTEM_SERVER,
00073 EASYDBUS_LOCAL
00074 };
00075
00076 enum easydbus_watcher_flags {
00077 EASYDBUS_WATCHER_INVALID = 0,
00078 EASYDBUS_WATCHER_WRITABLE = 1,
00079 EASYDBUS_WATCHER_READABLE = 2,
00080 EASYDBUS_WATCHER_ERROR = 4,
00081 EASYDBUS_WATCHER_HANGUP = 8
00082 };
00083
00084 enum easydbus_connection_flags {
00085 EASYDBUS_CONN_DEFAULT = 0,
00086 EASYDBUS_CONN_PRIVATE = 1,
00087
00088 EASYDBUS_CONN_ALLOW_REPLACEMENT = 2,
00089 EASYDBUS_CONN_REPLACE_EXISTING = 4,
00090 EASYDBUS_CONN_DO_NOT_QUEUE = 8,
00091
00092
00093
00094 EASYDBUS_CONN_NAME_SERVICE_RENAMED = 16,
00095
00096 EASYDBUS_CONN_NAME_SERVICE_EXISTS = 32,
00097 EASYDBUS_CONN_NAME_SERVICE_IN_QUEUE = 64,
00098 EASYDBUS_CONN_NAME_SERVICE_PRIMARY = 128,
00099
00100 EASYDBUS_CONN_NAME_UNIQUE = 256
00101 };
00102
00103 enum easydbus_ret_values {
00104 EASYDBUS_SIGNAL_HANDLED,
00105 EASYDBUS_SIGNAL_NOT_HANDLED,
00106 EASYDBUS_SIGNAL_MSG_NULL,
00107 EASYDBUS_SIGNAL_SENT,
00108 EASYDBUS_SIGNAL_NOT_SENT,
00109 EASYDBUS_SIGNAL_NOT_FOUND,
00110
00111 EASYDBUS_METHOD_NOT_SENT,
00112 EASYDBUS_METHOD_SENT,
00113 EASYDBUS_METHOD_HANDLED,
00114 EASYDBUS_METHOD_NOT_HANDLED,
00115 EASYDBUS_METHOD_MSG_NULL,
00116 EASYDBUS_METHOD_NOT_FOUND,
00117
00118 EASYDBUS_FAILURE_HANDLED,
00119 EASYDBUS_METHOD_RETURN_HANDLED,
00120 EASYDBUS_NEED_MEMORY,
00121 EASYDBUS_ERROR
00122 };
00123
00124
00125 typedef struct EasyDbus_conn EasyDbus_conn;
00126 typedef struct EasyDbus_container EasyDbus_container;
00127 typedef struct EasyDbus_elem EasyDbus_elem;
00128 typedef struct EasyDbus_signal EasyDbus_signal;
00129 typedef struct EasyDbus_reply EasyDbus_reply;
00130 typedef struct EasyDbus_method EasyDbus_method;
00131
00132 typedef void (*easydbus_method_async_reply_cb_f) (EasyDbus_conn *,
00133 EasyDbus_method *, void *);
00134
00135 typedef void (*easydbus_reply_async_cb_f) (EasyDbus_conn *,
00136 EasyDbus_method *, void *);
00137
00138 typedef void (*easydbus_error_message_cb_f) (EasyDbus_conn *,
00139 const EasyDbus_reply *,
00140 void *);
00141
00142 typedef void (*easydbus_reply_message_cb_f) (EasyDbus_conn *,
00143 const EasyDbus_method *,
00144 void *);
00145
00146
00147 # include <easydbus/elem.h>
00148 # include <easydbus/variant.h>
00149 # include <easydbus/dict_entry.h>
00150 # include <easydbus/skeleton.h>
00151 # include <easydbus/array.h>
00152 # include <easydbus/struct.h>
00153 # include <easydbus/monitor.h>
00154
00155 void
00156 easydbus_init (void);
00157
00158 inline void
00159 easydbus_deinit (void);
00160
00161
00162 int
00163 easydbus_conn_destroy (EasyDbus_conn *);
00164
00165 EasyDbus_conn *
00166 easydbus_conn_create (void);
00167
00168 int
00169 easydbus_conn_get_address (EasyDbus_conn *,
00170 char *, enum easydbus_bus,
00171 int);
00172
00173 inline int
00174 easydbus_conn_get_system_service_address (EasyDbus_conn *,
00175 char *);
00176
00177 const char *
00178 easydbus_conn_get_service_name (const EasyDbus_conn *);
00179
00180
00181 inline int
00182 easydbus_conn_add_match_rule (EasyDbus_conn *,
00183 enum event_type, char *,
00184 char *, char *,
00185 char *, char *);
00186
00187 inline int
00188 easydbus_conn_remove_match_rule (EasyDbus_conn *,
00189 enum event_type, char *,
00190 char *, char *,
00191 char *, char *);
00192
00193 int
00194 easydbus_conn_reconnect (EasyDbus_conn *, int);
00195
00196 int
00197 easydbus_conn_set_reply_async_cb (EasyDbus_conn *,
00198 easydbus_reply_async_cb_f,
00199 void *);
00200
00201 int
00202 easydbus_conn_set_error_message_cb (EasyDbus_conn *,
00203 easydbus_error_message_cb_f,
00204 void *);
00205
00206 int
00207 easydbus_conn_set_reply_message_cb (EasyDbus_conn *,
00208 easydbus_reply_message_cb_f);
00209
00210 int
00211 easydbus_conn_get_fd (EasyDbus_conn *);
00212
00213 int
00214 easydbus_conn_enable_filters (EasyDbus_conn *);
00215
00216 int
00217 easydbus_conn_disable_filters (EasyDbus_conn *);
00218
00219 void
00220 easydbus_conn_set_closure (EasyDbus_conn *, void *);
00221
00222 void *
00223 easydbus_conn_get_closure (EasyDbus_conn *);
00224
00225 int
00226 easydbus_start_service (EasyDbus_conn *, char *);
00227
00228 # ifdef TOFILE_DEBUG
00229 int
00230 easydbus_init_logger (char *);
00231
00232 void
00233 easydbus_deinit_logger (void);
00234 # endif
00235
00236 # ifdef __cplusplus
00237 extern "C" {
00238 # endif
00239
00240 #endif
00241