1.apply WPS for geofence
[platform/core/location/geofence-server.git] / geofence-server / include / geofence_server_data_types.h
1 /* Copyright 2014 Samsung Electronics Co., Ltd All Rights Reserved
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 #ifndef _GEOFENCE_MANAGER_DATA_TYPES_H_
17 #define _GEOFENCE_MANAGER_DATA_TYPES_H_
18
19 #include <stdint.h>
20 #include <time.h>
21 #include <tizen_type.h>
22 #include <tizen_error.h>
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 /* Tizen Geofence Server Error */
29 #if !defined(TIZEN_ERROR_GEOFENCE_SERVER)
30 #define TIZEN_ERROR_GEOFENCE_SERVER     TIZEN_ERROR_GEOFENCE_MANAGER
31 #endif
32
33 /**
34  * This enumeration has geofence service status.
35  */
36 typedef enum {
37         GEOFENCE_STATUS_UNABAILABLE = 0,
38         GEOFENCE_STATUS_ABAILABLE = 1,
39 }
40 geofence_status_t;
41
42 /**
43  * This enumeration describe the geofence fence state.
44  */
45 typedef enum {
46     GEOFENCE_EMIT_STATE_UNCERTAIN = 0,
47     GEOFENCE_EMIT_STATE_IN = 1,
48     GEOFENCE_EMIT_STATE_OUT = 2,
49 } geofence_emit_state_e;
50
51 /**
52  * This enumeration describe the geofence fence state.
53  */
54 typedef enum {
55     GEOFENCE_FENCE_STATE_UNCERTAIN = -1,
56     GEOFENCE_FENCE_STATE_OUT = 0,
57     GEOFENCE_FENCE_STATE_IN = 1,
58 } geofence_fence_state_e;
59
60 /**
61  * This enumeration describe the geofence proximity state.
62  */
63 typedef enum {
64     GEOFENCE_PROXIMITY_UNCERTAIN = 0,
65     GEOFENCE_PROXIMITY_FAR,
66     GEOFENCE_PROXIMITY_NEAR,
67     GEOFENCE_PROXIMITY_IMMEDIATE,
68 } geofence_proximity_state_e;
69
70 typedef enum {
71     GEOFENCE_PROXIMITY_PROVIDER_LOCATION = 0,
72     GEOFENCE_PROXIMITY_PROVIDER_WIFI,
73     GEOFENCE_PROXIMITY_PROVIDER_BLUETOOTH,
74     GEOFENCE_PROXIMITY_PROVIDER_BLE,
75     GEOFENCE_PROXIMITY_PROVIDER_SENSOR,
76 } geofence_proximity_provider_e;
77
78 /**
79  * This enumeration describe the geofence state.
80  */
81 typedef enum {
82     GEOFENCE_DIRECTION_BOTH = 0,
83     GEOFENCE_DIRECTION_ENTER,
84     GEOFENCE_DIRECTION_EXIT,
85 } geofence_direction_e;
86
87 /**
88  * This enumeration has geofence service error type.
89  */
90
91 typedef enum {
92     FENCE_ERR_NONE = 0,    /** No error */
93     FENCE_ERR_SQLITE_FAIL = -100,
94     FENCE_ERR_INVALID_PARAMETER = -101,
95     FENCE_ERR_INTERNAL = -102,
96     FENCE_ERR_FENCE_ID = -103,
97     FENCE_ERR_PREPARE = -104,
98     FENCE_ERR_FENCE_TYPE = -105,        /* geofence type ERROR */
99     FENCE_ERR_STRING_TRUNCATED = -106,  /* String truncated */
100     FENCE_ERR_COUNT = -107,     /* count <= 0 */
101     FENCE_ERR_UNKNOWN = -108
102 } fence_err_e;
103
104 /**
105  * @brief Enumerations of error code for Geofence manager.
106  * @since_tizen 2.4
107  */
108 typedef enum {
109     GEOFENCE_SERVER_ERROR_NONE = TIZEN_ERROR_NONE,                                                                     /**< Success */
110     GEOFENCE_SERVER_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY,                   /**< Out of memory */
111     GEOFENCE_SERVER_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER,           /**< Invalid parameter */
112     GEOFENCE_SERVER_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED,           /**< Permission denied  */
113     GEOFENCE_SERVER_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED,                   /**< Not supported  */
114     GEOFENCE_SERVER_ERROR_NOT_INITIALIZED = TIZEN_ERROR_GEOFENCE_SERVER | 0x01,       /**< Geofence Manager is not initialized */
115     GEOFENCE_SERVER_ERROR_ID_NOT_EXIST = TIZEN_ERROR_GEOFENCE_SERVER | 0x02,          /**< Geofence ID is not exist */
116     GEOFENCE_SERVER_ERROR_EXCEPTION = TIZEN_ERROR_GEOFENCE_SERVER | 0x03,             /**< exception is occured */
117     GEOFENCE_SERVER_ERROR_ALREADY_STARTED = TIZEN_ERROR_GEOFENCE_SERVER | 0x04,       /**< Geofence is already started */
118     GEOFENCE_SERVER_ERROR_TOO_MANY_GEOFENCE = TIZEN_ERROR_GEOFENCE_SERVER | 0x05,     /**< Too many Geofence */
119     GEOFENCE_SERVER_ERROR_IPC = TIZEN_ERROR_GEOFENCE_SERVER | 0x06,                  /**< Error occured in GPS/WIFI/BT */
120     GEOFENCE_SERVER_ERROR_DATABASE = TIZEN_ERROR_GEOFENCE_SERVER | 0x07,             /**< DB error occured in the server side */
121     GEOFENCE_SERVER_ERROR_PLACE_ACCESS_DENIED = TIZEN_ERROR_GEOFENCE_SERVER | 0x08,     /**< Access to specified place is denied */
122     GEOFENCE_SERVER_ERROR_GEOFENCE_ACCESS_DENIED = TIZEN_ERROR_GEOFENCE_SERVER | 0x09,     /**< Access to specified geofence is denied */
123 } geofence_server_error_e;
124
125 /**
126 * This enumeration describes the geofence param state
127 */
128 typedef enum {
129     GEOFENCE_MANAGE_FENCE_ADDED = 0x00,
130     GEOFENCE_MANAGE_FENCE_REMOVED,
131     GEOFENCE_MANAGE_FENCE_STARTED,
132     GEOFENCE_MANAGE_FENCE_STOPPED,
133
134     GEOFENCE_MANAGE_PLACE_ADDED = 0x10,
135     GEOFENCE_MANAGE_PLACE_REMOVED,
136     GEOFENCE_MANAGE_PLACE_UPDATED,
137
138     GEOFENCE_MANAGE_SETTING_ENABLED = 0x20,
139     GEOFENCE_MANAGE_SETTING_DISABLED
140 } geofence_manage_e;
141
142 /**
143  * This enumeration descript the Smart Assistant State
144  */
145 typedef enum {
146     GEOFENCE_SMART_ASSIST_STOP = 0,
147     GEOFENCE_SMART_ASSIST_START
148 } geofence_smart_assist_state_e;
149
150 typedef enum {
151     GEOFENCE_TYPE_GEOPOINT = 1,                 /**< Geofence is specified by geospatial coordinate */
152     GEOFENCE_TYPE_WIFI,                                 /**< Geofence is specified by Wi-Fi access point */
153     GEOFENCE_TYPE_BT,                                   /**< Geofence is specified by Blutetooth device */
154 } geofence_type_e;
155
156 typedef enum {
157     ACCESS_TYPE_PRIVATE = 1,
158     ACCESS_TYPE_PUBLIC,
159     ACCESS_TYPE_UNKNOWN,
160 } access_type_e;
161
162 #ifdef __cplusplus
163 }
164 #endif
165 #endif                          /* _GEOFENCE_MANAGER_DATA_TYPES_H_ */