e_ofono_private.h
Go to the documentation of this file.
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_Ofono.h"
28 
29 static const char manager_path[] = "/";
30 
31 extern const char *e_ofono_iface_manager;
32 extern const char *e_ofono_prop_modems;
33 extern const char *e_ofono_iface_modem;
34 extern const char *e_ofono_prop_name;
35 extern const char *e_ofono_prop_powered;
36 extern const char *e_ofono_prop_interfaces;
37 extern const char *e_ofono_iface_netreg;
38 extern const char *e_ofono_prop_mode;
39 extern const char *e_ofono_prop_status;
40 extern const char *e_ofono_prop_operator;
41 extern const char *e_ofono_prop_strength;
42 extern const char *e_ofono_iface_sms;
43 extern const char *e_ofono_prop_sca;
44 extern const char *e_ofono_method_send_sms;
45 
46 extern int _e_dbus_ofono_log_dom;
47 
48 #ifndef EINA_LOG_DEFAULT_COLOR
49 #define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN
50 #endif
51 
52 #undef DBG
53 #undef INF
54 #undef WRN
55 #undef ERR
56 
57 #define DBG(...) EINA_LOG_DOM_DBG(_e_dbus_ofono_log_dom, __VA_ARGS__)
58 #define INF(...) EINA_LOG_DOM_INFO(_e_dbus_ofono_log_dom, __VA_ARGS__)
59 #define WRN(...) EINA_LOG_DOM_WARN(_e_dbus_ofono_log_dom, __VA_ARGS__)
60 #define ERR(...) EINA_LOG_DOM_ERR(_e_dbus_ofono_log_dom, __VA_ARGS__)
61 
63 
65 {
66  int type;
67  Eina_Array *array;
68 };
69 
70 static inline Eina_Bool
71 _dbus_callback_check_and_init(DBusMessage *msg, DBusMessageIter *itr, DBusError *err)
72 {
73  if (!msg)
74  {
75  if (err)
76  ERR("an error was reported by server: "
77  "name=\"%s\", message=\"%s\"",
78  err->name, err->message);
79  else
80  ERR("callback without message arguments!");
81 
82  return EINA_FALSE;
83  }
84 
85  if (!dbus_message_iter_init(msg, itr))
86  {
87  ERR("could not init iterator.");
88  return EINA_FALSE;
89  }
90 
91  return EINA_TRUE;
92 }
93 
94 static inline Eina_Bool
95 __dbus_iter_type_check(int type, int expected, const char *expected_name)
96 {
97  if (type == expected)
98  return EINA_TRUE;
99 
100  ERR("expected type %s (%c) but got %c instead!",
101  expected_name, expected, type);
102 
103  return EINA_FALSE;
104 }
105 
106 #define _dbus_iter_type_check(t, e) __dbus_iter_type_check(t, e, # e)
107 
109 
110 const char * e_ofono_system_bus_name_get(void);
111 
113 
114 void e_ofono_elements_init(void);
115 void e_ofono_elements_shutdown(void);
116 
117 E_Ofono_Element * e_ofono_element_register(const char *path, const char *interface);
119 
120 Eina_Bool e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
121 
122 Eina_Bool e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
123 Eina_Bool e_ofono_element_call_with_path(E_Ofono_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);
124 Eina_Bool e_ofono_element_call_with_string(E_Ofono_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);
125 Eina_Bool e_ofono_element_call_with_path_and_string(E_Ofono_Element *element, const char *method_name, const char *path, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);
#define ERR(...)
Definition: e_ofono_private.h:60
int _e_dbus_ofono_log_dom
Definition: e_ofono.c:35
const char * e_ofono_prop_sca
Definition: e_ofono.c:32
void e_ofono_elements_init(void)
Definition: e_ofono_element.c:2452
void * alloca(size_t)
E_DBus_Connection * e_ofono_conn
Definition: e_ofono.c:12
const char * e_ofono_iface_sms
Definition: e_ofono.c:31
const char * e_ofono_prop_modems
Definition: e_ofono.c:21
const char * e_ofono_prop_strength
Definition: e_ofono.c:30
void e_ofono_elements_shutdown(void)
Definition: e_ofono_element.c:2461
Definition: e_dbus_private.h:18
E_Ofono_Element * e_ofono_element_register(const char *path, const char *interface)
Definition: e_ofono_element.c:2351
void(* E_DBus_Method_Return_Cb)(void *data, DBusMessage *msg, DBusError *error)
Definition: E_DBus.h:124
const char * e_ofono_iface_modem
Definition: e_ofono.c:22
const char * e_ofono_iface_netreg
Definition: e_ofono.c:26
const char * e_ofono_prop_operator
Definition: e_ofono.c:29
void e_ofono_element_unregister(E_Ofono_Element *element)
Definition: e_ofono_element.c:2416
int type
Definition: e_ofono_private.h:66
Definition: E_Ofono.h:30
const char * e_ofono_iface_manager
Definition: e_ofono.c:20
const char * e_ofono_prop_name
Definition: e_ofono.c:23
Eina_Array * array
Definition: e_ofono_private.h:67
const char * e_ofono_prop_powered
Definition: e_ofono.c:24
const char * e_ofono_prop_interfaces
Definition: e_ofono.c:25
const char * e_ofono_prop_mode
Definition: e_ofono.c:27
Eina_Bool e_ofono_element_message_send(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
Definition: e_ofono_element.c:1182
const char * e_ofono_system_bus_name_get(void)
Definition: e_ofono.c:38
void e_ofono_manager_clear_elements(void)
Definition: e_ofono_element.c:2439
Eina_Bool e_ofono_element_call_full(E_Ofono_Element *element, const char *method_name, const char *interface, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
Definition: e_ofono_element.c:1239
Eina_Bool e_ofono_element_call_with_string(E_Ofono_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)
Definition: e_ofono_element.c:1710
Definition: e_ofono_private.h:64
Eina_Bool e_ofono_element_call_with_path(E_Ofono_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)
Definition: e_ofono_element.c:1685
const char * e_ofono_prop_status
Definition: e_ofono.c:28
Eina_Bool e_ofono_element_call_with_path_and_string(E_Ofono_Element *element, const char *method_name, const char *path, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data)
Definition: e_ofono_element.c:1735
const char * e_ofono_method_send_sms
Definition: e_ofono.c:33