86ebf47523dff5ad8d783a401bedd9018f3cc324
[framework/telephony/tel-plugin-packetservice.git] / include / ps.h
1 /*
2  * tel-plugin-packetservice
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: DongHoo Park <donghoo.park@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #ifndef __PS_H__
22 #define __PS_H__
23
24 #define PS_DBUS_SERVICE "com.tcore.ps"
25
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include <string.h>
29 #include <glib.h>
30 #include <dbus/dbus-glib.h>
31
32 #include <tcore.h>
33 #include <plugin.h>
34 #include <storage.h>
35 #include <server.h>
36 #include <core_object.h>
37 #include <hal.h>
38
39 /*Storage Key value*/
40 #define KEY_3G_ENABLE                           STORAGE_KEY_3G_ENABLE
41 #define KEY_DATA_ROAMING_SETTING        STORAGE_KEY_SETAPPL_STATE_DATA_ROAMING_BOOL
42
43 /*MASTER*/
44 gpointer    _ps_master_create_master(DBusGConnection *conn, TcorePlugin *p);
45 gboolean    _ps_master_create_modems(gpointer master);
46 gboolean    _ps_master_get_storage_value(gpointer master, enum tcore_storage_key key);
47 gboolean    _ps_master_set_storage_value(gpointer master, enum tcore_storage_key key, gboolean value);
48
49 /*MODEM*/
50 gpointer    _ps_modem_create_modem(DBusGConnection *conn, TcorePlugin *p, gpointer master,
51                                 gchar* modem_name, gpointer co_modem);
52 gboolean    _ps_modem_processing_flight_mode(gpointer object, gboolean enable);
53 gboolean    _ps_modem_processing_power_enable(gpointer modem, gboolean enable);
54 gboolean    _ps_modem_processing_sim_complete(gpointer modem, gboolean complete, gchar *operator);
55 gboolean    _ps_modem_set_sim_enabled(gpointer object, gboolean value);
56 gboolean    _ps_modem_set_data_allowed(gpointer modem, gboolean value);
57 gboolean    _ps_modem_get_data_allowed(gpointer modem);
58 gboolean    _ps_modem_set_data_roaming_allowed(gpointer modem, gboolean value);
59 gboolean    _ps_modem_get_data_roaming_allowed(gpointer modem);
60 gboolean    _ps_modem_get_flght_mode(gpointer object);
61 gboolean    _ps_modem_get_sim_init(gpointer object);
62 gboolean    _ps_modem_get_power(gpointer object);
63 gchar*      _ps_modem_ref_operator(gpointer object);
64 gboolean    _ps_modem_get_properties(gpointer modem, GHashTable *properties);
65 GHashTable* _ps_modem_ref_services(gpointer modem);
66 gchar*      _ps_modem_ref_path(gpointer modem);
67 gpointer    _ps_modem_ref_plugin(gpointer modem);
68 gpointer    _ps_modem_ref_dbusconn(gpointer modem);
69 gpointer    _ps_modem_ref_co_modem(gpointer modem);
70
71 /*SERVICE*/
72 gpointer    _ps_service_create_service(DBusGConnection *conn, TcorePlugin *p,
73                                 gpointer modem, CoreObject *co_network, CoreObject *co_ps, gchar* path);
74 gboolean    _ps_service_ref_context(gpointer object, gpointer context);
75 gboolean    _ps_service_ref_contexts(gpointer service, GHashTable *contexts, gchar *operator);
76 gboolean    _ps_service_unref_context(gpointer service, gpointer context);
77 gboolean    _ps_service_get_properties(gpointer service, GHashTable *properties);
78 gchar*      _ps_service_ref_path(gpointer service);
79 gpointer    _ps_service_ref_plugin(gpointer service);
80 gpointer    _ps_service_ref_co_network(gpointer service);
81 gpointer    _ps_service_ref_co_ps(gpointer service);
82 gboolean    _ps_service_set_context_info(gpointer service, struct tnoti_ps_pdp_ipconfiguration *devinfo);
83 int             _ps_service_define_context(gpointer object, gpointer context);
84 int         _ps_service_activate_context(gpointer service, gpointer context);
85 gboolean    _ps_service_deactivate_context(gpointer service, gpointer context);
86 void        _ps_service_connection_timer(gpointer service, gpointer context);
87 void        _ps_service_reset_connection_timer(gpointer context);
88 void        _ps_service_connect_default_context(gpointer service);
89 void        _ps_service_remove_contexts(gpointer object);
90 void        _ps_service_disconnect_contexts(gpointer service);
91 gboolean    _ps_service_processing_network_event(gpointer service, gboolean ps_attached, gboolean roaming);
92 gpointer    _ps_service_return_default_context(gpointer object);
93 gboolean    _ps_service_set_connected(gpointer service, int context_id, gboolean enabled);
94 void            _ps_service_set_ps_defined(gpointer *object, gboolean value, int cid);
95 gboolean    _ps_service_set_ps_attached(gpointer service, gboolean value);
96 gboolean    _ps_service_set_roaming(gpointer service, gboolean value);
97 gboolean    _ps_service_get_roaming(gpointer object);
98 gboolean    _ps_service_set_access_technology(gpointer service,
99                                 enum telephony_network_access_technology value);
100 enum telephony_ps_state
101                         _ps_service_check_cellular_state(gpointer object);
102
103 /*CONTEXT*/
104 gboolean    _ps_context_initialize(gpointer plugin);
105 gboolean    _ps_context_reset_profile_table(void);
106 gboolean    _ps_context_fill_profile_table_from_ini_file(void);
107 gboolean    _ps_context_reset_hashtable(void);
108 GHashTable* _ps_context_create_hashtable(DBusGConnection *conn, TcorePlugin *p, gchar *mccmnc);
109 GHashTable* _ps_context_ref_hashtable(void);
110 gboolean    _ps_context_add_context(gpointer modem, gchar *operator, GHashTable *property);
111 gboolean    _ps_context_get_properties(gpointer context, GHashTable *properties);
112 gboolean    _ps_context_set_service(gpointer context, gpointer service);
113 gpointer    _ps_context_ref_service(gpointer object);
114 gboolean    _ps_context_get_alwayson_enable(gpointer object);
115 gchar*      _ps_context_ref_path(gpointer context);
116 gpointer    _ps_context_ref_co_context(gpointer context);
117 gboolean    _ps_context_set_connected(gpointer context, gboolean enabled);
118 gboolean        _ps_context_set_ps_defined(gpointer *object, gboolean value, int cid);
119 gboolean        _ps_context_get_ps_defined(gpointer *object);
120 gboolean    _ps_context_set_alwayson_enable(gpointer object, gboolean enabled);
121 gboolean    _ps_context_get_default_internet(gpointer object);
122 gboolean    _ps_context_remove_context(gpointer context);
123
124 /*PLUGIN INTERFACE*/
125 gboolean    _ps_hook_co_modem_event(gpointer modem);
126 gboolean    _ps_get_co_modem_values(gpointer modem);
127 gboolean    _ps_hook_co_network_event(gpointer service);
128 gboolean    _ps_free_co_network_event(gpointer service);
129 gboolean    _ps_get_co_network_values(gpointer service);
130 gboolean    _ps_hook_co_ps_event(gpointer service);
131 gboolean    _ps_free_co_ps_event(gpointer service);
132 gboolean    _ps_update_cellular_state_key(gpointer service);
133
134 #endif /* __PS_H__ */