lib/ofono/e_ofono_private.h
Go to the documentation of this file.
00001 #ifdef HAVE_CONFIG_H 00002 #include "config.h" 00003 #endif 00004 00005 #ifdef HAVE_ALLOCA_H 00006 # include <alloca.h> 00007 #elif defined __GNUC__ 00008 # define alloca __builtin_alloca 00009 #elif defined _AIX 00010 # define alloca __alloca 00011 #elif defined _MSC_VER 00012 # include <malloc.h> 00013 # define alloca _alloca 00014 #else 00015 # include <stddef.h> 00016 # ifdef __cplusplus 00017 extern "C" 00018 # endif 00019 void * alloca (size_t); 00020 #endif 00021 00022 #include <stdio.h> 00023 00024 #include <Eina.h> 00025 #include <eina_safety_checks.h> 00026 00027 #include "E_Ofono.h" 00028 00029 static const char manager_path[] = "/"; 00030 00031 extern const char *e_ofono_iface_manager; 00032 extern const char *e_ofono_prop_modems; 00033 extern const char *e_ofono_iface_modem; 00034 extern const char *e_ofono_prop_name; 00035 extern const char *e_ofono_prop_powered; 00036 extern const char *e_ofono_prop_interfaces; 00037 extern const char *e_ofono_iface_netreg; 00038 extern const char *e_ofono_prop_mode; 00039 extern const char *e_ofono_prop_status; 00040 extern const char *e_ofono_prop_operator; 00041 extern const char *e_ofono_prop_strength; 00042 extern const char *e_ofono_iface_sms; 00043 extern const char *e_ofono_prop_sca; 00044 extern const char *e_ofono_method_send_sms; 00045 00046 extern int _e_dbus_ofono_log_dom; 00047 00048 #ifndef EINA_LOG_DEFAULT_COLOR 00049 #define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN 00050 #endif 00051 00052 #undef DBG 00053 #undef INF 00054 #undef WRN 00055 #undef ERR 00056 00057 #define DBG(...) EINA_LOG_DOM_DBG(_e_dbus_ofono_log_dom, __VA_ARGS__) 00058 #define INF(...) EINA_LOG_DOM_INFO(_e_dbus_ofono_log_dom, __VA_ARGS__) 00059 #define WRN(...) EINA_LOG_DOM_WARN(_e_dbus_ofono_log_dom, __VA_ARGS__) 00060 #define ERR(...) EINA_LOG_DOM_ERR(_e_dbus_ofono_log_dom, __VA_ARGS__) 00061 00062 typedef struct _E_Ofono_Array E_Ofono_Array; 00063 00064 struct _E_Ofono_Array 00065 { 00066 int type; 00067 Eina_Array *array; 00068 }; 00069 00070 static inline Eina_Bool 00071 _dbus_callback_check_and_init(DBusMessage *msg, DBusMessageIter *itr, DBusError *err) 00072 { 00073 if (!msg) 00074 { 00075 if (err) 00076 ERR("an error was reported by server: " 00077 "name=\"%s\", message=\"%s\"", 00078 err->name, err->message); 00079 else 00080 ERR("callback without message arguments!"); 00081 00082 return EINA_FALSE; 00083 } 00084 00085 if (!dbus_message_iter_init(msg, itr)) 00086 { 00087 ERR("could not init iterator."); 00088 return EINA_FALSE; 00089 } 00090 00091 return EINA_TRUE; 00092 } 00093 00094 static inline Eina_Bool 00095 __dbus_iter_type_check(int type, int expected, const char *expected_name) 00096 { 00097 if (type == expected) 00098 return EINA_TRUE; 00099 00100 ERR("expected type %s (%c) but got %c instead!", 00101 expected_name, expected, type); 00102 00103 return EINA_FALSE; 00104 } 00105 00106 #define _dbus_iter_type_check(t, e) __dbus_iter_type_check(t, e, # e) 00107 00108 extern E_DBus_Connection *e_ofono_conn; 00109 00110 const char * e_ofono_system_bus_name_get(void); 00111 00112 void e_ofono_manager_clear_elements(void); 00113 00114 void e_ofono_elements_init(void); 00115 void e_ofono_elements_shutdown(void); 00116 00117 E_Ofono_Element * e_ofono_element_register(const char *path, const char *interface); 00118 void e_ofono_element_unregister(E_Ofono_Element *element); 00119 00120 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); 00121 00122 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); 00123 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); 00124 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); 00125 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);