60a321c8e0f0fa845016f6f5274c6e0fe2f978e6
[framework/uifw/edbus.git] / src / lib / nm / e_nm_private.h
1 #ifndef E_NM_PRIVATE_H
2 #define E_NM_PRIVATE_H
3
4 #define E_NM_PATH "/org/freedesktop/NetworkManager"
5 #define _E_NM_SERVICE "org.freedesktop.NetworkManager"
6 #define _E_NM_INTERFACE "org.freedesktop.NetworkManager"
7 #define _E_NM_INTERFACE_ACCESSPOINT "org.freedesktop.NetworkManager.AccessPoint"
8 #define _E_NM_INTERFACE_DEVICE "org.freedesktop.NetworkManager.Device"
9 #define _E_NM_INTERFACE_DEVICE_WIRELESS "org.freedesktop.NetworkManager.Device.Wireless"
10 #define _E_NM_INTERFACE_DEVICE_WIRED "org.freedesktop.NetworkManager.Device.Wired"
11 #define _E_NM_INTERFACE_IP4CONFIG "org.freedesktop.NetworkManager.IP4Config"
12 #define _E_NM_INTERFACE_CONNECTION_ACTIVE "org.freedesktop.NetworkManager.Connection.Active"
13 #define _E_NMS_PATH "/org/freedesktop/NetworkManagerSettings"
14 #define E_NMS_SERVICE_SYSTEM "org.freedesktop.NetworkManagerSystemSettings"
15 #define E_NMS_SERVICE_USER "org.freedesktop.NetworkManagerUserSettings"
16 #define _E_NMS_INTERFACE "org.freedesktop.NetworkManagerSettings"
17 #define _E_NMS_INTERFACE_CONNECTION "org.freedesktop.NetworkManagerSettings.Connection"
18
19 #define e_nm_call_new(member) dbus_message_new_method_call(_E_NM_SERVICE, E_NM_PATH, _E_NM_INTERFACE, member)
20 #define e_nms_call_new(service, member) dbus_message_new_method_call(service, _E_NMS_PATH, _E_NMS_INTERFACE, member)
21 #define e_nms_connection_call_new(service, conn, member) dbus_message_new_method_call(service, conn, _E_NMS_INTERFACE_CONNECTION, member)
22
23 #define e_nm_properties_get(con, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, E_NM_PATH, _E_NM_INTERFACE, prop, (E_DBus_Method_Return_Cb) cb, data)
24 #define e_nm_access_point_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_ACCESSPOINT, prop, (E_DBus_Method_Return_Cb) cb, data)
25 #define e_nm_device_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE, prop, (E_DBus_Method_Return_Cb) cb, data)
26 #define e_nm_device_wired_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE_WIRED, prop, (E_DBus_Method_Return_Cb) cb, data)
27 #define e_nm_device_wireless_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE_WIRELESS, prop, (E_DBus_Method_Return_Cb) cb, data)
28 #define e_nm_ip4_config_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_IP4CONFIG, prop, (E_DBus_Method_Return_Cb) cb, data)
29 #define e_nm_active_connection_properties_get(con, dev, prop, cb, data) e_dbus_properties_get(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_CONNECTION_ACTIVE, prop, (E_DBus_Method_Return_Cb) cb, data)
30
31 #define e_nm_signal_handler_add(con, sig, cb, data) e_dbus_signal_handler_add(con, _E_NM_SERVICE, E_NM_PATH, _E_NM_INTERFACE, sig, cb, data)
32 #define e_nm_access_point_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_ACCESSPOINT, sig, cb, data)
33 #define e_nm_device_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE, sig, cb, data)
34 #define e_nm_device_wired_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE_WIRED, sig, cb, data)
35 #define e_nm_device_wireless_signal_handler_add(con, dev, sig, cb, data) e_dbus_signal_handler_add(con, _E_NM_SERVICE, dev, _E_NM_INTERFACE_DEVICE_WIRELESS, sig, cb, data)
36
37 #define e_nms_signal_handler_add(con, service, sig, cb, data) e_dbus_signal_handler_add(con, service, _E_NMS_PATH, _E_NMS_INTERFACE, sig, cb, data)
38
39 typedef struct E_NM_Internal E_NM_Internal;
40 struct E_NM_Internal
41 {
42   E_NM nm;
43
44   E_DBus_Connection *conn;
45
46   int  (*state_changed)(E_NM *nm, E_NM_State state);
47   int  (*properties_changed)(E_NM *nm);
48   int  (*device_added)(E_NM *nm, const char *device);
49   int  (*device_removed)(E_NM *nm, const char *device);
50   Ecore_List *handlers;
51
52   void *data;
53 };
54
55 typedef struct E_NM_Device_Internal E_NM_Device_Internal;
56 struct E_NM_Device_Internal
57 {
58   E_NM_Device dev;
59
60   E_NM_Internal *nmi;
61
62   int  (*state_changed)(E_NM_Device *device, E_NM_State new_state, E_NM_State old_state, E_NM_Device_State_Reason reason);
63   int  (*properties_changed)(E_NM_Device *device);
64   Ecore_List *handlers;
65
66   void *data;
67 };
68
69 typedef struct E_NM_Access_Point_Internal E_NM_Access_Point_Internal;
70 struct E_NM_Access_Point_Internal
71 {
72   E_NM_Access_Point ap;
73
74   E_NM_Internal *nmi;
75
76   int  (*properties_changed)(E_NM_Access_Point *device);
77   Ecore_List *handlers;
78
79   void *data;
80 };
81
82 typedef struct E_NM_IP4_Config_Internal E_NM_IP4_Config_Internal;
83 struct E_NM_IP4_Config_Internal
84 {
85   E_NM_IP4_Config cfg;
86
87   E_NM_Internal *nmi;
88 };
89
90 typedef struct E_NMS_Internal E_NMS_Internal;
91 struct E_NMS_Internal
92 {
93   E_NM_Internal *nmi;
94
95   int  (*new_connection)(E_NMS *nms, E_NMS_Context context, const char *connection);
96   Ecore_List *handlers;
97
98   void *data;
99 };
100
101 typedef struct E_NMS_Connection_Internal E_NMS_Connection_Internal;
102 struct E_NMS_Connection_Internal
103 {
104   E_NM_Internal *nmi;
105   char          *path;
106   E_NMS_Context  context;
107
108   void *data;
109 };
110
111 typedef struct E_NM_Active_Connection_Internal E_NM_Active_Connection_Internal;
112 struct E_NM_Active_Connection_Internal
113 {
114   E_NM_Active_Connection conn;
115
116   E_NM_Internal *nmi;
117 };
118
119 typedef int (*Object_Cb)(void *data, void *reply);
120 #define OBJECT_CB(function) ((Object_Cb)function)
121
122 typedef struct Property Property;
123 typedef struct Property_Data Property_Data;
124 struct Property
125 {
126   const char *name;
127   const char *sig;
128   void (*func)(Property_Data *data, DBusMessageIter *iter);
129   size_t offset;
130 };
131 struct Property_Data
132 {
133   E_NM_Internal   *nmi;
134   char            *object;
135   Object_Cb        cb_func;
136   void            *reply;
137   void            *data;
138
139   Property        *property;
140 };
141
142 typedef struct Reply_Data Reply_Data;
143 struct Reply_Data
144 {
145   void  *object;
146   int  (*cb_func)(void *data, void *reply);
147   void  *data;
148   void  *reply;
149 };
150
151 void  property(void *data, DBusMessage *msg, DBusError *err);
152 void  parse_properties(void *data, Property *properties, DBusMessage *msg);
153
154 void *cb_nm_object_path_list(DBusMessage *msg, DBusError *err);
155 void  free_nm_object_path_list(void *data);
156 void *cb_nm_settings(DBusMessage *msg, DBusError *err);
157 void  free_nm_settings(void *data);
158
159 int   check_arg_type(DBusMessageIter *iter, char type);
160
161 void  property_data_free(Property_Data *data);
162
163 const char *ip4_address2str(unsigned int address);
164 #endif