E_DBus.h
Go to the documentation of this file.
1 #ifndef E_DBUS_H
2 #define E_DBUS_H
3 
4 #define DBUS_API_SUBJECT_TO_CHANGE
5 
6 #ifdef _WIN32
7 # ifdef interface
8 # undef interface
9 # endif
10 #endif
11 
12 #ifdef _WIN32
13 # ifdef interface
14 # undef interface
15 # endif
16 # define DBUS_API_SUBJECT_TO_CHANGE
17 #endif
18 
19 #include <dbus/dbus.h>
20 #include <Eina.h>
21 
22 #ifdef EAPI
23 # undef EAPI
24 #endif
25 
26 #ifdef _WIN32
27 # ifdef EFL_EDBUS_BUILD
28 # ifdef DLL_EXPORT
29 # define EAPI __declspec(dllexport)
30 # else
31 # define EAPI
32 # endif /* ! DLL_EXPORT */
33 # else
34 # define EAPI __declspec(dllimport)
35 # endif /* ! EFL_EDBUS_BUILD */
36 #else
37 # ifdef __GNUC__
38 # if __GNUC__ >= 4
39 # define EAPI __attribute__ ((visibility("default")))
40 # else
41 # define EAPI
42 # endif
43 # else
44 # define EAPI
45 # endif
46 #endif
47 
93 #define E_DBUS_FDO_BUS "org.freedesktop.DBus"
94 #define E_DBUS_FDO_PATH "/org/freedesktop/DBus"
95 #define E_DBUS_FDO_INTERFACE E_DBUS_FDO_BUS
96 #define E_DBUS_FDO_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"
97 
98 #ifdef __cplusplus
99 extern "C" {
100 #endif
101 
102 #define E_DBUS_VERSION_MAJOR 1
103 #define E_DBUS_VERSION_MINOR 7
104 
105  typedef struct _E_DBus_Version
106  {
107  int major;
108  int minor;
109  int micro;
110  int revision;
111  } E_DBus_Version;
112 
114 
115  EAPI extern int E_DBUS_DOMAIN_GLOBAL;
116  EAPI extern int E_DBUS_EVENT_SIGNAL;
117 
119  typedef struct E_DBus_Object E_DBus_Object;
122 
123  typedef DBusMessage *(* E_DBus_Method_Cb)(E_DBus_Object *obj, DBusMessage *message);
124  typedef void (*E_DBus_Method_Return_Cb) (void *data, DBusMessage *msg, DBusError *error);
125  typedef void (*E_DBus_Signal_Cb) (void *data, DBusMessage *msg);
126 
127  typedef void (*E_DBus_Object_Property_Get_Cb) (E_DBus_Object *obj, const char *property, int *type, void **value);
128  typedef int (*E_DBus_Object_Property_Set_Cb) (E_DBus_Object *obj, const char *property, int type, void *value);
129 
135  typedef void (*E_DBus_Callback_Func) (void *user_data, void *method_return, DBusError *error);
136  typedef void *(*E_DBus_Unmarshal_Func) (DBusMessage *msg, DBusError *err);
137  typedef void (*E_DBus_Free_Func) (void *data);
138 
140 
141 
145 EAPI int e_dbus_init(void);
146 
150 EAPI int e_dbus_shutdown(void);
151 
152 /* setting up the connection */
153 
158 EAPI E_DBus_Connection *e_dbus_bus_get(DBusBusType type);
159 
161 
167 EAPI E_DBus_Connection *e_dbus_connection_setup(DBusConnection *conn);
168 
174 
175 /* receiving method calls */
176  EAPI E_DBus_Interface *e_dbus_interface_new(const char *interface);
181 
194 EAPI int e_dbus_interface_method_add(E_DBus_Interface *iface, const char *member, const char *signature, const char *reply_signature, E_DBus_Method_Cb func);
195 
205 EAPI int e_dbus_interface_signal_add(E_DBus_Interface *iface, const char *name, const char *signature);
206 
215 EAPI E_DBus_Object *e_dbus_object_add(E_DBus_Connection *conn, const char *object_path, void *data);
216 
223 
229 
235 
240 EAPI const char *e_dbus_object_path_get(E_DBus_Object *obj);
241 
246 EAPI const Eina_List *e_dbus_object_interfaces_get(E_DBus_Object *obj);
247 
254 
261 
262 
263 /* sending method calls */
264 
274 EAPI DBusPendingCall *e_dbus_message_send(E_DBus_Connection *conn, DBusMessage *msg, E_DBus_Method_Return_Cb cb_return, int timeout, void *data);
275 
277 
278 
279 /* signal receiving */
280 
292 EAPI E_DBus_Signal_Handler *e_dbus_signal_handler_add(E_DBus_Connection *conn, const char *sender, const char *path, const char *interface, const char *member, E_DBus_Signal_Cb cb_signal, void *data);
293 
301 
302 /* standard dbus method calls */
303 
304  EAPI DBusPendingCall *e_dbus_request_name(E_DBus_Connection *conn, const char *name,
305  unsigned int flags,
306  E_DBus_Method_Return_Cb cb_return,
307  const void *data);
308  EAPI DBusPendingCall *e_dbus_release_name(E_DBus_Connection *conn, const char *name,
309  E_DBus_Method_Return_Cb cb_return,
310  const void *data);
311 
312  EAPI DBusPendingCall *e_dbus_get_name_owner(E_DBus_Connection *conn, const char *name,
313  E_DBus_Method_Return_Cb cb_return,
314  const void *data);
315  EAPI DBusPendingCall *e_dbus_list_names(E_DBus_Connection *conn,
316  E_DBus_Method_Return_Cb cb_return,
317  const void *data);
319  E_DBus_Method_Return_Cb cb_return,
320  const void *data);
321  EAPI DBusPendingCall *e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name,
322  E_DBus_Method_Return_Cb cb_return,
323  const void *data);
324  EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags,
325  E_DBus_Method_Return_Cb cb_return,
326  const void *data);
327 
328 /* standard methods calls on objects */
329 
339 EAPI DBusPendingCall *e_dbus_introspect(E_DBus_Connection *conn, const char *bus,
340  const char *object_path, E_DBus_Method_Return_Cb cb_return, const void *data);
341 
351 EAPI DBusPendingCall *e_dbus_peer_ping(E_DBus_Connection *conn, const char *destination,
352  const char *path, E_DBus_Method_Return_Cb cb_return,
353  const void *data);
354 
364 EAPI DBusPendingCall *e_dbus_peer_get_machine_id(E_DBus_Connection *conn,
365  const char *destination, const char *path,
366  E_DBus_Method_Return_Cb cb_return,
367  const void *data);
368  EAPI DBusPendingCall *e_dbus_properties_get_all(E_DBus_Connection *conn, const char *destination,
369  const char *path, const char *interface,
370  E_DBus_Method_Return_Cb cb_return,
371  const void *data);
372 
384 EAPI DBusPendingCall *e_dbus_properties_get(E_DBus_Connection *conn, const char *destination,
385  const char *path, const char *interface,
386  const char *property,
387  E_DBus_Method_Return_Cb cb_return,
388  const void *data);
389 
403 EAPI DBusPendingCall *e_dbus_properties_set(E_DBus_Connection *conn, const char *destination,
404  const char *path, const char *interface,
405  const char *property, int value_type,
406  const void *value, E_DBus_Method_Return_Cb cb_return,
407  const void *data);
408 
409 
416 
422  EAPI void e_dbus_callback_call(E_DBus_Callback *cb, void *data, DBusError *error);
423  EAPI void *e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, DBusError *err);
424  EAPI void e_dbus_callback_return_free(E_DBus_Callback *callback, void *data);
425 
426 #ifdef __cplusplus
427 }
428 #endif
429 
434 #endif
EAPI E_DBus_Connection * e_dbus_object_conn_get(E_DBus_Object *obj)
Get the dbus connection of a dbus object.
Definition: e_dbus_object.c:287
EAPI int e_dbus_interface_method_add(E_DBus_Interface *iface, const char *member, const char *signature, const char *reply_signature, E_DBus_Method_Cb func)
Definition: e_dbus_object.c:398
void * data
Definition: e_dbus_signal.c:31
EAPI DBusPendingCall * e_dbus_list_activatable_names(E_DBus_Connection *conn, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:136
EAPI DBusPendingCall * e_dbus_list_names(E_DBus_Connection *conn, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:129
void(* E_DBus_Callback_Func)(void *user_data, void *method_return, DBusError *error)
Definition: E_DBus.h:135
E_DBus_Unmarshal_Func unmarshal_func
Definition: e_dbus_private.h:37
int micro
Definition: E_DBus.h:109
void *(* E_DBus_Unmarshal_Func)(DBusMessage *msg, DBusError *err)
Definition: E_DBus.h:136
EAPI int E_DBUS_DOMAIN_GLOBAL
Definition: e_dbus.c:30
Definition: e_dbus_private.h:18
EAPI int e_dbus_shutdown(void)
Definition: e_dbus.c:608
EAPI E_DBus_Connection * e_dbus_connection_setup(DBusConnection *conn)
Definition: e_dbus.c:481
EAPI void e_dbus_callback_call(E_DBus_Callback *cb, void *data, DBusError *error)
Definition: e_dbus_util.c:32
void(* E_DBus_Method_Return_Cb)(void *data, DBusMessage *msg, DBusError *error)
Definition: E_DBus.h:124
EAPI int e_dbus_interface_signal_add(E_DBus_Interface *iface, const char *name, const char *signature)
Definition: e_dbus_object.c:412
EAPI DBusPendingCall * e_dbus_properties_get(E_DBus_Connection *conn, const char *destination, const char *path, const char *interface, const char *property, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_interfaces.c:108
EAPI DBusPendingCall * e_dbus_peer_get_machine_id(E_DBus_Connection *conn, const char *destination, const char *path, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_interfaces.c:46
EAPI void * e_dbus_object_data_get(E_DBus_Object *obj)
Fetch the data pointer for a dbus object.
Definition: e_dbus_object.c:280
EAPI void e_dbus_connection_close(E_DBus_Connection *conn)
Definition: e_dbus.c:517
EAPI DBusPendingCall * e_dbus_message_send(E_DBus_Connection *conn, DBusMessage *msg, E_DBus_Method_Return_Cb cb_return, int timeout, void *data)
Send a DBus message with callbacks.
Definition: e_dbus_message.c:63
EAPI E_DBus_Object * e_dbus_object_add(E_DBus_Connection *conn, const char *object_path, void *data)
Definition: e_dbus_object.c:232
EAPI E_DBus_Version * e_dbus_version
Definition: e_dbus.c:17
EAPI void e_dbus_interface_unref(E_DBus_Interface *iface)
Definition: e_dbus_object.c:374
Definition: E_DBus.h:105
Definition: e_dbus_private.h:34
#define EAPI
Definition: E_DBus.h:44
EAPI DBusPendingCall * e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:149
EAPI DBusPendingCall * e_dbus_request_name(E_DBus_Connection *conn, const char *name, unsigned int flags, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:92
Definition: e_dbus_object.c:48
EAPI void * e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, DBusError *err)
Definition: e_dbus_util.c:39
void(* E_DBus_Free_Func)(void *data)
Definition: E_DBus.h:137
EAPI int e_dbus_init(void)
Initialize e_dbus.
Definition: e_dbus.c:573
int minor
Definition: E_DBus.h:108
EAPI E_DBus_Connection * e_dbus_bus_get(DBusBusType type)
Definition: e_dbus.c:435
EAPI void e_dbus_connection_ref(E_DBus_Connection *conn)
Definition: e_dbus.c:559
EAPI DBusPendingCall * e_dbus_method_call_send(E_DBus_Connection *conn, DBusMessage *msg, E_DBus_Unmarshal_Func unmarshal_func, E_DBus_Callback_Func cb_func, E_DBus_Free_Func free_func, int timeout, void *data)
Definition: e_dbus_message.c:115
E_DBus_Callback_Func cb_func
Definition: e_dbus_private.h:36
EAPI void e_dbus_object_free(E_DBus_Object *obj)
Definition: e_dbus_object.c:260
EAPI E_DBus_Interface * e_dbus_interface_new(const char *interface)
Definition: e_dbus_object.c:426
EAPI E_DBus_Callback * e_dbus_callback_new(E_DBus_Callback_Func cb_func, E_DBus_Unmarshal_Func unmarshal_func, E_DBus_Free_Func free_func, void *user_data)
Create a callback structure.
Definition: e_dbus_util.c:10
EAPI DBusPendingCall * e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:142
E_DBus_Free_Func free_func
Definition: e_dbus_private.h:38
int revision
Definition: E_DBus.h:110
int major
Definition: E_DBus.h:107
DBusMessage *(* E_DBus_Method_Cb)(E_DBus_Object *obj, DBusMessage *message)
Definition: E_DBus.h:123
EAPI void e_dbus_object_interface_attach(E_DBus_Object *obj, E_DBus_Interface *iface)
Definition: e_dbus_object.c:326
EAPI void e_dbus_callback_return_free(E_DBus_Callback *callback, void *data)
Definition: e_dbus_util.c:47
void(* E_DBus_Signal_Cb)(void *data, DBusMessage *msg)
Definition: E_DBus.h:125
Definition: e_dbus_object.c:62
EAPI const Eina_List * e_dbus_object_interfaces_get(E_DBus_Object *obj)
Get the interfaces of a dbus object.
Definition: e_dbus_object.c:301
EAPI void e_dbus_object_interface_detach(E_DBus_Object *obj, E_DBus_Interface *iface)
Definition: e_dbus_object.c:350
EAPI void e_dbus_interface_ref(E_DBus_Interface *iface)
Definition: e_dbus_object.c:366
EAPI int E_DBUS_EVENT_SIGNAL
Definition: e_dbus.c:31
EAPI void e_dbus_object_property_set_cb_set(E_DBus_Object *obj, E_DBus_Object_Property_Set_Cb func)
Sets the callback to set properties on an object.
Definition: e_dbus_object.c:317
EAPI DBusPendingCall * e_dbus_get_name_owner(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:123
EAPI void e_dbus_signal_handler_del(E_DBus_Connection *conn, E_DBus_Signal_Handler *sh)
Definition: e_dbus_signal.c:178
EAPI DBusPendingCall * e_dbus_properties_set(E_DBus_Connection *conn, const char *destination, const char *path, const char *interface, const char *property, int value_type, const void *value, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_interfaces.c:129
EAPI DBusPendingCall * e_dbus_properties_get_all(E_DBus_Connection *conn, const char *destination, const char *path, const char *interface, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_interfaces.c:87
struct _E_DBus_Version E_DBus_Version
EAPI DBusPendingCall * e_dbus_peer_ping(E_DBus_Connection *conn, const char *destination, const char *path, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_interfaces.c:39
EAPI DBusPendingCall * e_dbus_introspect(E_DBus_Connection *conn, const char *bus, const char *object_path, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:71
EAPI E_DBus_Signal_Handler * e_dbus_signal_handler_add(E_DBus_Connection *conn, const char *sender, const char *path, const char *interface, const char *member, E_DBus_Signal_Cb cb_signal, void *data)
Definition: e_dbus_signal.c:100
Definition: e_dbus_signal.c:19
EAPI void e_dbus_callback_free(E_DBus_Callback *callback)
Free a callback structure.
Definition: e_dbus_util.c:26
EAPI void e_dbus_object_property_get_cb_set(E_DBus_Object *obj, E_DBus_Object_Property_Get_Cb func)
Sets the callback to fetch properties from an object.
Definition: e_dbus_object.c:308
void(* E_DBus_Object_Property_Get_Cb)(E_DBus_Object *obj, const char *property, int *type, void **value)
Definition: E_DBus.h:127
EAPI DBusPendingCall * e_dbus_release_name(E_DBus_Connection *conn, const char *name, E_DBus_Method_Return_Cb cb_return, const void *data)
Definition: e_dbus_methods.c:116
EAPI const char * e_dbus_object_path_get(E_DBus_Object *obj)
Get the path of a dbus object.
Definition: e_dbus_object.c:294
int(* E_DBus_Object_Property_Set_Cb)(E_DBus_Object *obj, const char *property, int type, void *value)
Definition: E_DBus.h:128