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
99extern "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;
112
114
115 EAPI extern int E_DBUS_DOMAIN_GLOBAL;
116 EAPI extern int E_DBUS_EVENT_SIGNAL;
117
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
145EAPI int e_dbus_init(void);
146
150EAPI int e_dbus_shutdown(void);
151
152/* setting up the connection */
153
158EAPI E_DBus_Connection *e_dbus_bus_get(DBusBusType type);
159
161
167EAPI 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
194EAPI 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
205EAPI int e_dbus_interface_signal_add(E_DBus_Interface *iface, const char *name, const char *signature);
206
215EAPI E_DBus_Object *e_dbus_object_add(E_DBus_Connection *conn, const char *object_path, void *data);
216
223
229
235
241
246EAPI const Eina_List *e_dbus_object_interfaces_get(E_DBus_Object *obj);
247
254
261
262
263/* sending method calls */
264
274EAPI 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
292EAPI 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
339EAPI 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
351EAPI 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
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
384EAPI 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
403EAPI 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
#define EAPI
Definition: E_DBus.h:44
EAPI void * e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, DBusError *err)
Definition: e_dbus_util.c:39
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
EAPI void e_dbus_callback_call(E_DBus_Callback *cb, void *data, DBusError *error)
Definition: e_dbus_util.c:32
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_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
void(* E_DBus_Free_Func)(void *data)
Definition: E_DBus.h:137
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 void e_dbus_object_interface_detach(E_DBus_Object *obj, E_DBus_Interface *iface)
Definition: e_dbus_object.c:350
void(* E_DBus_Method_Return_Cb)(void *data, DBusMessage *msg, DBusError *error)
Definition: E_DBus.h:124
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
EAPI int E_DBUS_DOMAIN_GLOBAL
Definition: e_dbus.c:30
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_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
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 void e_dbus_object_interface_attach(E_DBus_Object *obj, E_DBus_Interface *iface)
Definition: e_dbus_object.c:326
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_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 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 E_DBus_Interface * e_dbus_interface_new(const char *interface)
Definition: e_dbus_object.c:426
DBusMessage *(* E_DBus_Method_Cb)(E_DBus_Object *obj, DBusMessage *message)
Definition: E_DBus.h:123
EAPI E_DBus_Version * e_dbus_version
Definition: e_dbus.c:17
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_Connection * e_dbus_bus_get(DBusBusType type)
Definition: e_dbus.c:434
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 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_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
EAPI int e_dbus_shutdown(void)
Definition: e_dbus.c:608
int(* E_DBus_Object_Property_Set_Cb)(E_DBus_Object *obj, const char *property, int type, void *value)
Definition: E_DBus.h:128
EAPI int e_dbus_init(void)
Initialize e_dbus.
Definition: e_dbus.c:573
struct _E_DBus_Version E_DBus_Version
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 void e_dbus_callback_return_free(E_DBus_Callback *callback, void *data)
Definition: e_dbus_util.c:47
EAPI int E_DBUS_EVENT_SIGNAL
Definition: e_dbus.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 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_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
EAPI void e_dbus_connection_close(E_DBus_Connection *conn)
Definition: e_dbus.c:516
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 void e_dbus_object_free(E_DBus_Object *obj)
Definition: e_dbus_object.c:260
void(* E_DBus_Object_Property_Get_Cb)(E_DBus_Object *obj, const char *property, int *type, void **value)
Definition: E_DBus.h:127
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_interface_ref(E_DBus_Interface *iface)
Definition: e_dbus_object.c:366
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
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
EAPI void e_dbus_connection_ref(E_DBus_Connection *conn)
Definition: e_dbus.c:559
void(* E_DBus_Callback_Func)(void *user_data, void *method_return, DBusError *error)
Definition: E_DBus.h:135
EAPI E_DBus_Connection * e_dbus_connection_setup(DBusConnection *conn)
Definition: e_dbus.c:480
void *(* E_DBus_Unmarshal_Func)(DBusMessage *msg, DBusError *err)
Definition: E_DBus.h:136
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
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_interface_unref(E_DBus_Interface *iface)
Definition: e_dbus_object.c:374
void(* E_DBus_Signal_Cb)(void *data, DBusMessage *msg)
Definition: E_DBus.h:125
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 void e_dbus_callback_free(E_DBus_Callback *callback)
Free a callback structure.
Definition: e_dbus_util.c:26
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
Definition: e_dbus_private.h:35
E_DBus_Callback_Func cb_func
Definition: e_dbus_private.h:36
void * user_data
Definition: e_dbus_private.h:39
E_DBus_Free_Func free_func
Definition: e_dbus_private.h:38
E_DBus_Unmarshal_Func unmarshal_func
Definition: e_dbus_private.h:37
Definition: e_dbus_private.h:19
Definition: e_dbus_object.c:63
Definition: e_dbus_object.c:49
Definition: e_dbus_signal.c:20
void * data
Definition: e_dbus_signal.c:31
Definition: E_DBus.h:106
int minor
Definition: E_DBus.h:108
int micro
Definition: E_DBus.h:109
int revision
Definition: E_DBus.h:110
int major
Definition: E_DBus.h:107