ea93467a12d08aeb7f0ba601a79d998b595cfac2
[framework/uifw/edbus.git] / src / lib / connman / e_connman_private.h
1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4
5 #ifdef HAVE_ALLOCA_H
6 # include <alloca.h>
7 #elif defined __GNUC__
8 # define alloca __builtin_alloca
9 #elif defined _AIX
10 # define alloca __alloca
11 #elif defined _MSC_VER
12 # include <malloc.h>
13 # define alloca _alloca
14 #else
15 # include <stddef.h>
16 # ifdef  __cplusplus
17 extern "C"
18 # endif
19 void *    alloca (size_t);
20 #endif
21
22 #include <stdio.h>
23
24 #include <Eina.h>
25 #include <eina_safety_checks.h>
26
27 #include "E_Connman.h"
28
29 static const char manager_path[] = "/";
30
31 extern const char *e_connman_iface_manager;
32 extern const char *e_connman_iface_profile;
33 extern const char *e_connman_iface_service;
34 extern const char *e_connman_iface_connection;
35 extern const char *e_connman_iface_technology;
36
37 extern const char *e_connman_prop_ipv4;
38 extern const char *e_connman_prop_ipv4_configuration;
39 extern const char *e_connman_prop_ethernet;
40 extern const char *e_connman_prop_interface;
41 extern const char *e_connman_prop_speed;
42 extern const char *e_connman_prop_duplex;
43 extern const char *e_connman_prop_method;
44 extern const char *e_connman_prop_address;
45 extern const char *e_connman_prop_gateway;
46 extern const char *e_connman_prop_netmask;
47 extern const char *e_connman_prop_mtu;
48 extern const char *e_connman_prop_name;
49 extern const char *e_connman_prop_offline_mode;
50 extern const char *e_connman_prop_profiles;
51 extern const char *e_connman_prop_profile_active;
52 extern const char *e_connman_prop_services;
53 extern const char *e_connman_prop_technologies;
54 extern const char *e_connman_prop_state;
55 extern const char *e_connman_prop_strength;
56 extern const char *e_connman_prop_type;
57 extern const char *e_connman_prop_error;
58 extern const char *e_connman_prop_security;
59 extern const char *e_connman_prop_passphrase;
60 extern const char *e_connman_prop_passphrase_required;
61 extern const char *e_connman_prop_favorite;
62 extern const char *e_connman_prop_immutable;
63 extern const char *e_connman_prop_auto_connect;
64 extern const char *e_connman_prop_roaming;
65 extern const char *e_connman_prop_technology_default;
66 extern const char *e_connman_prop_technologies_available;
67 extern const char *e_connman_prop_technologies_enabled;
68 extern const char *e_connman_prop_technologies_connected;
69 extern const char *e_connman_prop_login_required;
70 extern const char *e_connman_prop_nameservers;
71 extern const char *e_connman_prop_nameservers_configuration;
72 extern const char *e_connman_prop_domains;
73 extern const char *e_connman_prop_domains_configuration;
74 extern const char *e_connman_prop_proxy;
75 extern const char *e_connman_prop_proxy_configuration;
76 extern const char *e_connman_prop_url;
77 extern const char *e_connman_prop_servers;
78 extern const char *e_connman_prop_excludes;
79
80 extern int _e_dbus_connman_log_dom;
81
82 #ifndef EINA_LOG_DEFAULT_COLOR
83 #define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN
84 #endif
85
86 #undef DBG
87 #undef INF
88 #undef WRN
89 #undef ERR
90
91 #define DBG(...) EINA_LOG_DOM_DBG(_e_dbus_connman_log_dom, __VA_ARGS__)
92 #define INF(...) EINA_LOG_DOM_INFO(_e_dbus_connman_log_dom, __VA_ARGS__)
93 #define WRN(...) EINA_LOG_DOM_WARN(_e_dbus_connman_log_dom, __VA_ARGS__)
94 #define ERR(...) EINA_LOG_DOM_ERR(_e_dbus_connman_log_dom, __VA_ARGS__)
95
96 static inline Eina_Bool
97 _dbus_callback_check_and_init(DBusMessage *msg, DBusMessageIter *itr, DBusError *err)
98 {
99    if (!msg)
100      {
101         if (err && (err->name[0] == 'C'))
102           return EINA_FALSE;
103         if (err)
104            ERR("an error was reported by server: "
105                "name=\"%s\", message=\"%s\"",
106                err->name, err->message);
107         else
108            ERR("callback without message arguments!");
109
110         return EINA_FALSE;
111      }
112
113    if (!dbus_message_iter_init(msg, itr))
114      {
115         ERR("could not init iterator.");
116         return EINA_FALSE;
117      }
118
119    return EINA_TRUE;
120 }
121
122 static inline Eina_Bool
123 __dbus_iter_type_check(int type, int expected, const char *expected_name)
124 {
125    if (type == expected)
126       return EINA_TRUE;
127
128    ERR("expected type %s (%c) but got %c instead!",
129        expected_name, expected, type);
130
131    return EINA_FALSE;
132 }
133
134 #define _dbus_iter_type_check(t, e) __dbus_iter_type_check(t, e, # e)
135
136 extern E_DBus_Connection *e_connman_conn;
137
138 const char *           e_connman_system_bus_name_get(void);
139
140 void                   e_connman_manager_clear_elements(void);
141
142 void                   e_connman_elements_init(void);
143 void                   e_connman_elements_shutdown(void);
144
145 E_Connman_Element *    e_connman_element_register(const char *path, const char *interface);
146 void                   e_connman_element_unregister(E_Connman_Element *element);
147
148 Eina_Bool              e_connman_element_objects_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count, E_Connman_Element ***elements);
149 Eina_Bool              e_connman_element_strings_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count, const char ***strings);
150 unsigned char *        e_connman_element_bytes_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count);
151
152 Eina_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);
153
154 Eina_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);
155 Eina_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);
156 Eina_Bool              e_connman_element_call_with_string(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);