4 #define DBUS_API_SUBJECT_TO_CHANGE
16 # define DBUS_API_SUBJECT_TO_CHANGE
19 #include <dbus/dbus.h>
27 # ifdef EFL_EDBUS_BUILD
29 # define EAPI __declspec(dllexport)
32 # endif /* ! DLL_EXPORT */
34 # define EAPI __declspec(dllimport)
35 # endif /* ! EFL_EDBUS_BUILD */
39 # define EAPI __attribute__ ((visibility("default")))
51 EAPI extern int E_DBUS_DOMAIN_GLOBAL;
52 EAPI extern int E_DBUS_EVENT_SIGNAL;
54 typedef struct E_DBus_Connection E_DBus_Connection;
55 typedef struct E_DBus_Object E_DBus_Object;
56 typedef struct E_DBus_Interface E_DBus_Interface;
57 typedef struct E_DBus_Signal_Handler E_DBus_Signal_Handler;
59 typedef DBusMessage *(* E_DBus_Method_Cb)(E_DBus_Object *obj, DBusMessage *message);
60 typedef void (*E_DBus_Method_Return_Cb) (void *data, DBusMessage *msg, DBusError *error);
61 typedef void (*E_DBus_Signal_Cb) (void *data, DBusMessage *msg);
63 typedef void (*E_DBus_Object_Property_Get_Cb) (E_DBus_Object *obj, const char *property, int *type, void **value);
64 typedef int (*E_DBus_Object_Property_Set_Cb) (E_DBus_Object *obj, const char *property, int type, void *value);
67 * A callback function for a DBus call
68 * @param user_data the data passed in to the method call
69 * @param event_data a struct containing the return data.
71 typedef void (*E_DBus_Callback_Func) (void *user_data, void *method_return, DBusError *error);
72 typedef void *(*E_DBus_Unmarshal_Func) (DBusMessage *msg, DBusError *err);
73 typedef void (*E_DBus_Free_Func) (void *data);
75 typedef struct E_DBus_Callback E_DBus_Callback;
78 EAPI int e_dbus_init(void);
79 EAPI int e_dbus_shutdown(void);
81 /* setting up the connection */
83 EAPI E_DBus_Connection *e_dbus_bus_get(DBusBusType type);
85 EAPI void e_dbus_connection_ref(E_DBus_Connection *conn);
87 EAPI E_DBus_Connection *e_dbus_connection_setup(DBusConnection *conn);
88 EAPI void e_dbus_connection_close(E_DBus_Connection *conn);
90 /* receiving method calls */
91 EAPI E_DBus_Interface *e_dbus_interface_new(const char *interface);
92 EAPI void e_dbus_interface_ref(E_DBus_Interface *iface);
93 EAPI void e_dbus_interface_unref(E_DBus_Interface *iface);
94 EAPI void e_dbus_object_interface_attach(E_DBus_Object *obj, E_DBus_Interface *iface);
95 EAPI void e_dbus_object_interface_detach(E_DBus_Object *obj, E_DBus_Interface *iface);
96 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);
98 EAPI int e_dbus_interface_signal_add(E_DBus_Interface *iface, const char *name, const char *signature);
100 EAPI E_DBus_Object *e_dbus_object_add(E_DBus_Connection *conn, const char *object_path, void *data);
101 EAPI void e_dbus_object_free(E_DBus_Object *obj);
102 EAPI void *e_dbus_object_data_get(E_DBus_Object *obj);
103 EAPI E_DBus_Connection *e_dbus_object_conn_get(E_DBus_Object *obj);
104 EAPI const char *e_dbus_object_path_get(E_DBus_Object *obj);
105 EAPI const Eina_List *e_dbus_object_interfaces_get(E_DBus_Object *obj);
107 EAPI void e_dbus_object_property_get_cb_set(E_DBus_Object *obj, E_DBus_Object_Property_Get_Cb func);
108 EAPI void e_dbus_object_property_set_cb_set(E_DBus_Object *obj, E_DBus_Object_Property_Set_Cb func);
111 /* sending method calls */
114 EAPI DBusPendingCall *e_dbus_message_send(E_DBus_Connection *conn, DBusMessage *msg, E_DBus_Method_Return_Cb cb_return, int timeout, void *data);
116 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);
119 /* signal receiving */
121 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);
122 EAPI void e_dbus_signal_handler_del(E_DBus_Connection *conn, E_DBus_Signal_Handler *sh);
124 /* standard dbus method calls */
126 EAPI DBusPendingCall *e_dbus_request_name(E_DBus_Connection *conn, const char *name,
128 E_DBus_Method_Return_Cb cb_return,
130 EAPI DBusPendingCall *e_dbus_release_name(E_DBus_Connection *conn, const char *name,
131 E_DBus_Method_Return_Cb cb_return,
134 EAPI DBusPendingCall *e_dbus_get_name_owner(E_DBus_Connection *conn, const char *name,
135 E_DBus_Method_Return_Cb cb_return,
137 EAPI DBusPendingCall *e_dbus_list_names(E_DBus_Connection *conn,
138 E_DBus_Method_Return_Cb cb_return,
140 EAPI DBusPendingCall *e_dbus_list_activatable_names(E_DBus_Connection *conn,
141 E_DBus_Method_Return_Cb cb_return,
143 EAPI DBusPendingCall *e_dbus_name_has_owner(E_DBus_Connection *conn, const char *name,
144 E_DBus_Method_Return_Cb cb_return,
146 EAPI DBusPendingCall *e_dbus_start_service_by_name(E_DBus_Connection *conn, const char *name, unsigned int flags,
147 E_DBus_Method_Return_Cb cb_return,
150 /* standard methods calls on objects */
151 EAPI DBusPendingCall *e_dbus_peer_ping(E_DBus_Connection *conn, const char *destination,
152 const char *path, E_DBus_Method_Return_Cb cb_return,
154 EAPI DBusPendingCall *e_dbus_peer_get_machine_id(E_DBus_Connection *conn,
155 const char *destination, const char *path,
156 E_DBus_Method_Return_Cb cb_return,
158 EAPI DBusPendingCall *e_dbus_properties_get_all(E_DBus_Connection *conn, const char *destination,
159 const char *path, const char *interface,
160 E_DBus_Method_Return_Cb cb_return,
162 EAPI DBusPendingCall *e_dbus_properties_get(E_DBus_Connection *conn, const char *destination,
163 const char *path, const char *interface,
164 const char *property,
165 E_DBus_Method_Return_Cb cb_return,
167 EAPI DBusPendingCall *e_dbus_properties_set(E_DBus_Connection *conn, const char *destination,
168 const char *path, const char *interface,
169 const char *property, int value_type,
170 const void *value, E_DBus_Method_Return_Cb cb_return,
174 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);
176 EAPI void e_dbus_callback_free(E_DBus_Callback *callback);
177 EAPI void e_dbus_callback_call(E_DBus_Callback *cb, void *data, DBusError *error);
178 EAPI void *e_dbus_callback_unmarshal(E_DBus_Callback *cb, DBusMessage *msg, DBusError *err);
179 EAPI void e_dbus_callback_return_free(E_DBus_Callback *callback, void *data);