Backport changes from EFL
[platform/upstream/eldbus.git] / src / lib / eldbus_private.h
1 #ifndef ELDBUS_PRIVATE_H
2 #define ELDBUS_PRIVATE_H
3
4 #include <dbus/dbus.h>
5 #include <Eina.h>
6 #include "eina_safety_checks.h"
7 #include <Ecore.h>
8 #include "Eldbus.h"
9 #include "eldbus_private_types.h"
10
11 extern int _eldbus_log_dom;
12 #define DBG(...)      EINA_LOG_DOM_DBG(_eldbus_log_dom, __VA_ARGS__)
13 #define INF(...)      EINA_LOG_DOM_INFO(_eldbus_log_dom, __VA_ARGS__)
14 #define WRN(...)      EINA_LOG_DOM_WARN(_eldbus_log_dom, __VA_ARGS__)
15 #define ERR(...)      EINA_LOG_DOM_ERR(_eldbus_log_dom, __VA_ARGS__)
16 #define CRITICAL(...) EINA_LOG_DOM_CRIT(_eldbus_log_dom, __VA_ARGS__)
17
18 #define ELDBUS_CONNECTION_MAGIC        (0xdb050001)
19 #define ELDBUS_MESSAGE_MAGIC           (0xdb050002)
20 #define ELDBUS_SIGNAL_HANDLER_MAGIC    (0xdb050003)
21 #define ELDBUS_PENDING_MAGIC           (0xdb050004)
22 #define ELDBUS_OBJECT_MAGIC            (0xdb050005)
23 #define ELDBUS_PROXY_MAGIC             (0xdb050006)
24 #define ELDBUS_MESSAGE_ITERATOR_MAGIC  (0xdb050007)
25 #define ELDBUS_SERVICE_INTERFACE_MAGIC (0xdb050008)
26
27 void                   eldbus_cbs_free_dispatch(Eina_Inlist **p_lst, const void *dead_pointer);
28 Eina_Inlist           *eldbus_cbs_free_add(Eina_Inlist *lst, Eldbus_Free_Cb cb, const void *data);
29 Eina_Inlist           *eldbus_cbs_free_del(Eina_Inlist *lst, Eldbus_Free_Cb cb, const void *data);
30
31 void                   eldbus_data_set(Eina_Inlist **p_lst, const char *key, const void *data) EINA_ARG_NONNULL(1, 2, 3);
32 void                  *eldbus_data_get(Eina_Inlist **p_lst, const char *key) EINA_ARG_NONNULL(1, 2);
33 void                  *eldbus_data_del(Eina_Inlist **p_lst, const char *key) EINA_ARG_NONNULL(1, 2);
34 void                   eldbus_data_del_all(Eina_Inlist **p_list) EINA_ARG_NONNULL(1);
35
36 Eina_Bool              eldbus_message_init(void);
37 void                   eldbus_message_shutdown(void);
38 Eldbus_Message         *eldbus_message_new(Eina_Bool writable);
39
40 Eina_Bool              eldbus_signal_handler_init(void);
41 void                   eldbus_signal_handler_shutdown(void);
42
43 Eina_Bool              eldbus_pending_init(void);
44 void                   eldbus_pending_shutdown(void);
45
46 Eina_Bool              eldbus_object_init(void);
47 void                   eldbus_object_shutdown(void);
48
49 Eina_Bool              eldbus_proxy_init(void);
50 void                   eldbus_proxy_shutdown(void);
51
52 Eina_Bool              eldbus_service_init(void);
53 void                   eldbus_service_shutdown(void);
54
55 void                   eldbus_connection_event_callback_call(Eldbus_Connection *conn, Eldbus_Connection_Event_Type type, const void *event_info) EINA_ARG_NONNULL(1);
56
57 Eina_Bool              eldbus_object_proxy_del(Eldbus_Object *obj, Eldbus_Proxy *proxy, const char *interface) EINA_ARG_NONNULL(1, 2);
58
59 void                   eldbus_connection_signal_handler_add(Eldbus_Connection *conn, Eldbus_Signal_Handler *handler) EINA_ARG_NONNULL(1, 2);
60 void                   eldbus_connection_pending_add(Eldbus_Connection *conn, Eldbus_Pending *pending) EINA_ARG_NONNULL(1, 2);
61 void                   eldbus_connection_signal_handler_del(Eldbus_Connection *conn, Eldbus_Signal_Handler *handler) EINA_ARG_NONNULL(1, 2);
62 void                   eldbus_connection_signal_handler_del(Eldbus_Connection *conn, Eldbus_Signal_Handler *handler) EINA_ARG_NONNULL(1, 2);
63 void                   eldbus_connection_pending_del(Eldbus_Connection *conn, Eldbus_Pending *pending) EINA_ARG_NONNULL(1, 2);
64
65 Eldbus_Object          *eldbus_connection_name_object_get(Eldbus_Connection *conn, const char *name, const char *path);
66 void                   eldbus_connection_name_object_set(Eldbus_Connection *conn, Eldbus_Object *obj);
67
68 Eina_Bool              eldbus_object_proxy_add(Eldbus_Object *obj, Eldbus_Proxy *proxy) EINA_ARG_NONNULL(1, 2);
69 Eldbus_Proxy           *eldbus_object_proxy_get(Eldbus_Object *obj, const char *interface);
70
71 void                   eldbus_connection_name_object_del(Eldbus_Connection *conn, const Eldbus_Object *obj);
72 Eldbus_Connection_Name *eldbus_connection_name_get(Eldbus_Connection *conn, const char *name);
73 void                   eldbus_connection_name_owner_monitor(Eldbus_Connection *conn, Eldbus_Connection_Name *cn, Eina_Bool enable);
74
75 Eldbus_Pending         *_eldbus_connection_send(Eldbus_Connection *conn, Eldbus_Message *msg, Eldbus_Message_Cb cb, const void *cb_data, double timeout);
76
77 Eldbus_Message_Iter    *eldbus_message_iter_sub_iter_get(Eldbus_Message_Iter *iter);
78 Eina_Value            *_message_iter_struct_to_eina_value(Eldbus_Message_Iter *iter);
79 Eina_Bool             _message_iter_from_eina_value_struct(const char *signature, Eldbus_Message_Iter *iter, const Eina_Value *value);
80
81 void                   eldbus_connection_name_ref(Eldbus_Connection_Name *cn);
82 void                   eldbus_connection_name_unref(Eldbus_Connection *conn, Eldbus_Connection_Name *cn);
83 Eldbus_Signal_Handler  *_eldbus_signal_handler_add(Eldbus_Connection *conn, const char *sender, const char *path, const char *interface, const char *member, Eldbus_Signal_Cb cb, const void *cb_data);
84
85 Eldbus_Message         *eldbus_message_signal_new(const char *path, const char *interface, const char *name) EINA_ARG_NONNULL(1, 2, 3) EINA_WARN_UNUSED_RESULT;
86
87 #endif