DA: Applying secure log
[platform/core/connectivity/net-config.git] / include / wifi-state.h
1 /*
2  * Network Configuration Module
3  *
4  * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #ifndef __NETCONFIG_WIFI_STATE_H__
21 #define __NETCONFIG_WIFI_STATE_H__
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #include <glib.h>
28
29 typedef enum {
30         NETCONFIG_WIFI_UNKNOWN          = 0x00,
31         NETCONFIG_WIFI_IDLE                     = 0x01,
32         NETCONFIG_WIFI_ASSOCIATION      = 0x02,
33         NETCONFIG_WIFI_CONFIGURATION    = 0x03,
34         NETCONFIG_WIFI_CONNECTED        = 0x04,
35         NETCONFIG_WIFI_FAILURE          = 0x05,
36 } wifi_service_state_e;
37
38 typedef enum {
39         NETCONFIG_WIFI_TECH_UNKNOWN             = 0x00,
40         NETCONFIG_WIFI_TECH_OFF                         = 0x01,
41         NETCONFIG_WIFI_TECH_WPS_ONLY            = 0x02,
42         NETCONFIG_WIFI_TECH_POWERED                     = 0x03,
43         NETCONFIG_WIFI_TECH_CONNECTED           = 0x04,
44 } wifi_tech_state_e;
45
46 typedef struct wifi_state_notifier{
47         struct wifi_state_notifier *notifier;
48         char *service;
49         void (*wifi_state_changed)(struct wifi_state_notifier *,
50                 char *, wifi_service_state_e, void *);
51         void *user_data;
52 } wifi_state_notifier_s;
53
54 typedef struct {
55         char *interface_name;
56         char *mac_address;
57         gboolean powered;
58         gboolean connected;
59         wifi_tech_state_e tech_state;
60         wifi_service_state_e service_state;
61         guint64 rx;
62         guint64 tx;
63         guint64 rx_diff;
64         guint64 tx_diff;
65 } wifi_device_data_s;
66
67 char *_convert_wifi_technology_state_to_string(wifi_tech_state_e wifi_tech_state_type);
68 char *_convert_wifi_service_state_to_string(wifi_service_state_e wifi_service_state_type);
69
70 void wifi_state_update_power_state(const char *interface_name, gboolean powered);
71 void wifi_state_emit_power_completed(const char *interface_name, gboolean power_on);
72 void wifi_state_emit_power_failed(const char *interface_name);
73
74 char *wifi_get_favorite_service(void);
75 void wifi_start_timer_network_notification(const char *interface_name);
76
77 void wifi_state_notifier_register(wifi_state_notifier_s *notifier);
78 void wifi_state_notifier_unregister(wifi_state_notifier_s *notifier);
79 void wifi_state_notifier_cleanup(void);
80
81 void wifi_state_set_bss_found(gboolean found);
82 gboolean wifi_state_is_bss_found(void);
83
84 gboolean wifi_state_update_device_list(void);
85 GSList *wifi_state_get_device_list(void);
86
87 void wifi_state_set_service_state(const char *interface_name,
88                 const char *service, wifi_service_state_e new_state);
89 wifi_service_state_e wifi_state_get_service_state(const char *interface_name);
90
91 void wifi_state_set_technology_state(const char *interface_name, wifi_tech_state_e new_state);
92 wifi_tech_state_e wifi_state_get_technology_state(const char *interface_name);
93
94 void wifi_state_set_powered(const char *interface_name, gboolean powered);
95 gboolean wifi_state_get_powered(const char *interface_name);
96
97 void wifi_state_set_connected(const char *interface_name, gboolean connected);
98 gboolean wifi_state_get_connected(const char *interface_name);
99
100 gboolean wifi_state_is_existed(const char *interface_name);
101 const char *wifi_state_get_interface_name(const char *mac_address);
102 const char *wifi_state_get_mac_address(const char *interface_name);
103
104 void wifi_state_set_connected_essid(void);
105 void wifi_state_get_connected_essid(gchar **essid);
106
107 void wifi_state_initialize(void);
108 void wifi_state_deinitialize(void);
109
110
111 #ifdef __cplusplus
112 }
113 #endif
114
115 #endif /* __NETCONFIG_WIFI_STATE_H__ */