headers inclusion is a real mess...
[framework/uifw/edbus.git] / src / lib / connman / e_connman_private.h
1 #include <stdio.h>
2
3 #include <Eina.h>
4 #include <eina_safety_checks.h>
5
6 #include "E_Connman.h"
7
8 static const char manager_path[] = "/";
9
10 extern const char *e_connman_iface_manager;
11 extern const char *e_connman_iface_network;
12 extern const char *e_connman_iface_profile;
13 extern const char *e_connman_iface_service;
14 extern const char *e_connman_iface_device;
15 extern const char *e_connman_iface_connection;
16
17 extern const char *e_connman_prop_available;
18 extern const char *e_connman_prop_connected;
19 extern const char *e_connman_prop_connections;
20 extern const char *e_connman_prop_default;
21 extern const char *e_connman_prop_device;
22 extern const char *e_connman_prop_devices;
23 extern const char *e_connman_prop_interface;
24 extern const char *e_connman_prop_ipv4_address;
25 extern const char *e_connman_prop_ipv4_method;
26 extern const char *e_connman_prop_name;
27 extern const char *e_connman_prop_network;
28 extern const char *e_connman_prop_networks;
29 extern const char *e_connman_prop_offline_mode;
30 extern const char *e_connman_prop_policy;
31 extern const char *e_connman_prop_powered;
32 extern const char *e_connman_prop_priority;
33 extern const char *e_connman_prop_profiles;
34 extern const char *e_connman_prop_remember;
35 extern const char *e_connman_prop_scan_interval;
36 extern const char *e_connman_prop_scanning;
37 extern const char *e_connman_prop_state;
38 extern const char *e_connman_prop_strengh;
39 extern const char *e_connman_prop_type;
40 extern const char *e_connman_prop_wifi_mode;
41 extern const char *e_connman_prop_wifi_passphrase;
42 extern const char *e_connman_prop_wifi_security;
43 extern const char *e_connman_prop_wifi_ssid;
44 extern int _e_dbus_connman_log_dom;
45
46 #ifndef EINA_LOG_DEFAULT_COLOR
47 #define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN
48 #endif
49
50 #undef DBG
51 #undef INF
52 #undef WRN
53 #undef ERR
54
55 #define DBG(...) EINA_LOG_DOM_DBG(_e_dbus_connman_log_dom , __VA_ARGS__)
56 #define INF(...) EINA_LOG_DOM_INFO(_e_dbus_connman_log_dom , __VA_ARGS__)
57 #define WRN(...) EINA_LOG_DOM_WARN(_e_dbus_connman_log_dom , __VA_ARGS__)
58 #define ERR(...) EINA_LOG_DOM_ERR(_e_dbus_connman_log_dom , __VA_ARGS__)
59
60 static inline bool
61 __dbus_callback_check_and_init(const char *file, int line, const char *function, DBusMessage *msg, DBusMessageIter *itr, DBusError *err)
62 {
63    if (!msg)
64      {
65         if (err)
66           ERR(file, function, line,
67               "an error was reported by server: "
68               "name=\"%s\", message=\"%s\"",
69               err->name, err->message);
70         else
71           ERR(file, function, line,
72               "callback without message arguments!");
73
74         return 0;
75      }
76
77    if (!dbus_message_iter_init(msg, itr))
78      {
79        ERR(file, function, line,
80            "could not init iterator.");
81         return 0;
82      }
83
84    return 1;
85 }
86
87 #define _dbus_callback_check_and_init(msg, itr, err)                    \
88   __dbus_callback_check_and_init(__FILE__, __LINE__, __FUNCTION__,      \
89                                  msg, itr, err)
90
91 static inline bool
92 __dbus_iter_type_check(const char *file, int line, const char *function, int type, int expected, const char *expected_name)
93 {
94    if (type == expected)
95      return 1;
96
97    ERR(file, function, line,
98        "expected type %s (%c) but got %c instead!",
99        expected_name, expected, type);
100
101    return 0;
102 }
103 #define _dbus_iter_type_check(t, e) __dbus_iter_type_check(__FILE__, __LINE__, __FUNCTION__, t, e, #e)
104
105 extern E_DBus_Connection *e_connman_conn;
106
107 const char *e_connman_system_bus_name_get(void);
108
109 void e_connman_manager_clear_elements(void);
110
111 void e_connman_elements_init(void);
112 void e_connman_elements_shutdown(void);
113
114 E_Connman_Element *e_connman_element_register(const char *path, const char *interface);
115 void e_connman_element_unregister(E_Connman_Element *element);
116
117 bool e_connman_element_objects_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count, E_Connman_Element ***elements);
118 unsigned char *e_connman_element_bytes_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count);
119
120 bool e_connman_element_call_with_path(E_Connman_Element *element, const char *method_name, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
121
122 bool e_connman_element_message_send(E_Connman_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
123
124 bool e_connman_element_call_full(E_Connman_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);