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
17extern "C"
18# endif
19void * 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
29static const char manager_path[] = "/";
30
31extern const char *e_ofono_iface_manager;
32extern const char *e_ofono_prop_modems;
33extern const char *e_ofono_iface_modem;
34extern const char *e_ofono_prop_name;
35extern const char *e_ofono_prop_powered;
36extern const char *e_ofono_prop_interfaces;
37extern const char *e_ofono_iface_netreg;
38extern const char *e_ofono_prop_mode;
39extern const char *e_ofono_prop_status;
40extern const char *e_ofono_prop_operator;
41extern const char *e_ofono_prop_strength;
42extern const char *e_ofono_iface_sms;
43extern const char *e_ofono_prop_sca;
44extern const char *e_ofono_method_send_sms;
45
46extern 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
70static 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
94static 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
110const char * e_ofono_system_bus_name_get(void);
111
113
114void e_ofono_elements_init(void);
116
117E_Ofono_Element * e_ofono_element_register(const char *path, const char *interface);
119
120Eina_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
122Eina_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);
123Eina_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);
124Eina_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);
125Eina_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);
E_Ofono_Element * e_ofono_element_register(const char *path, const char *interface)
Definition: e_ofono_element.c:2351
const char * e_ofono_prop_operator
Definition: e_ofono.c:29
#define ERR(...)
Definition: e_ofono_private.h:60
const char * e_ofono_prop_status
Definition: e_ofono.c:28
int _e_dbus_ofono_log_dom
Definition: e_ofono.c:35
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
const char * e_ofono_iface_modem
Definition: e_ofono.c:22
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_prop_name
Definition: e_ofono.c:23
const char * e_ofono_method_send_sms
Definition: e_ofono.c:33
void * alloca(size_t)
const char * e_ofono_iface_sms
Definition: e_ofono.c:31
const char * e_ofono_system_bus_name_get(void)
Definition: e_ofono.c:38
const char * e_ofono_prop_mode
Definition: e_ofono.c:27
void e_ofono_manager_clear_elements(void)
Definition: e_ofono_element.c:2439
const char * e_ofono_prop_modems
Definition: e_ofono.c:21
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_prop_sca
Definition: e_ofono.c:32
void e_ofono_elements_init(void)
Definition: e_ofono_element.c:2452
const char * e_ofono_iface_netreg
Definition: e_ofono.c:26
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
void e_ofono_element_unregister(E_Ofono_Element *element)
Definition: e_ofono_element.c:2416
const char * e_ofono_prop_interfaces
Definition: e_ofono.c:25
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
void e_ofono_elements_shutdown(void)
Definition: e_ofono_element.c:2461
const char * e_ofono_prop_powered
Definition: e_ofono.c:24
const char * e_ofono_iface_manager
Definition: e_ofono.c:20
const char * e_ofono_prop_strength
Definition: e_ofono.c:30
E_DBus_Connection * e_ofono_conn
Definition: e_ofono.c:12
void(* E_DBus_Method_Return_Cb)(void *data, DBusMessage *msg, DBusError *error)
Definition: E_DBus.h:124
Definition: e_dbus_private.h:19
Definition: e_ofono_private.h:65
Eina_Array * array
Definition: e_ofono_private.h:67
int type
Definition: e_ofono_private.h:66
Definition: E_Ofono.h:31