Tizen 2.0 Release
[framework/api/poi.git] / test / location_poi_test.c
1 /*
2  * Copyright (c) 2011-2013 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #include <stdio.h>
17 #include <unistd.h>
18 #include <glib.h>
19 #include <poi.h>
20 #include <location_bounds.h>
21
22 static GMainLoop *g_mainloop = NULL;
23
24 static gpointer GmainThread(gpointer data)
25 {
26         g_mainloop = g_main_loop_new (NULL, FALSE);
27         printf("\n...Entering GMain Loop to Receive Notifications....\n");
28         g_main_loop_run (g_mainloop);
29         g_main_loop_unref (g_mainloop);
30         g_mainloop = NULL;
31         return NULL;
32 }
33
34 bool _service_search_cb(poi_error_e error, int request_id , int index, int length , poi_h poi , void * user_data)
35 {
36         printf("error %d %d)-------------\n",error,  index);
37         char * name=NULL ;
38         char *description=NULL;
39         poi_get_name(poi , &name);
40         int ret = poi_get_description(poi, &description);
41         printf("get description ret = %d\n", ret);
42         printf("%s / %s\n", name , description);
43
44
45         return true;
46 }
47
48
49 int poi_test(){
50         poi_service_h poi_manager ;
51         poi_filter_h filter;
52         poi_preference_h pref;
53         poi_service_create(&poi_manager);
54
55         location_bounds_h bound;
56
57         location_coords_s pos = {37.336723, -121.889555};
58         location_bounds_create_circle(pos, 400, &bound);
59
60         char * addr = "N SAN PEDRO ST CA SANTA CLARA SAN JOSE 95110";
61
62         poi_filter_create(&filter);
63         //poi_filter_set(filter, "KEYWORD", "pizza");
64         poi_filter_set(filter, "CATEGORY", "restaurant");
65         poi_preference_create(&pref);
66         poi_preference_set_max_result(pref, 5);
67         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_ASC);
68         poi_service_set_preference(poi_manager, pref);
69
70          int ret;
71         //printf("request search!!!\n");
72         ret = poi_service_search(poi_manager,pos , 100, filter, _service_search_cb , NULL, NULL);
73         printf("ret = category, poi_service_search : %d\n", ret);
74
75         sleep(3);
76
77         poi_filter_create(&filter);
78         poi_filter_set(filter, "KEYWORD", "pizza");
79         poi_preference_create(&pref);
80         poi_preference_set_max_result(pref, 5);
81         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
82         poi_service_set_preference(poi_manager, pref);
83
84         ret = poi_service_search(poi_manager,pos , 100, filter, _service_search_cb , NULL, NULL);
85         printf("ret = keyword, poi_service_search : %d\n", ret);
86
87
88         sleep(3);
89
90         poi_filter_create(&filter);
91         poi_filter_set(filter, "POIName", "pizza");
92         poi_preference_create(&pref);
93         poi_preference_set_max_result(pref, 5);
94         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
95         poi_service_set_preference(poi_manager, pref);
96
97         ret = poi_service_search(poi_manager,pos , 100, filter, _service_search_cb , NULL, NULL);
98         printf("ret = POIName, poi_service_search : %d\n", ret);
99
100         sleep(3);
101
102         poi_filter_create(&filter);
103         poi_filter_set(filter, "CATEGORY", "restaurant");
104         poi_preference_create(&pref);
105         poi_preference_set_max_result(pref, 5);
106         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
107         poi_service_set_preference(poi_manager, pref);
108
109         ret = poi_service_search_by_area(poi_manager, bound, filter, _service_search_cb , NULL, NULL);
110         printf("ret = category, poi_service_search_by_area : %d\n", ret);
111
112
113         sleep(3);
114
115         poi_filter_create(&filter);
116         poi_filter_set(filter, "KEYWORD", "pizza");
117         poi_preference_create(&pref);
118         poi_preference_set_max_result(pref, 5);
119         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
120         poi_service_set_preference(poi_manager, pref);
121
122         ret = poi_service_search_by_area(poi_manager, bound, filter, _service_search_cb , NULL, NULL);
123         printf("ret = keyword, poi_service_search_by_area : %d\n", ret);
124
125         sleep(3);
126
127         poi_filter_create(&filter);
128         poi_preference_create(&pref);
129         poi_filter_set(filter, "POIName", "pizza");
130         poi_preference_set_max_result(pref, 5);
131         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
132         poi_service_set_preference(poi_manager, pref);
133
134         ret = poi_service_search_by_area(poi_manager, bound, filter, _service_search_cb , NULL, NULL);
135         printf("ret = poi name, poi_service_search_by_area : %d\n", ret);
136
137         sleep(3);
138
139         poi_filter_create(&filter);
140         poi_filter_set(filter, "CATEGORY", "restaurant");
141         poi_preference_create(&pref);
142         poi_preference_set_max_result(pref, 5);
143         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
144         poi_service_set_preference(poi_manager, pref);
145
146         ret = poi_service_search_by_address(poi_manager, addr, 100, filter, _service_search_cb , NULL, NULL);
147         printf("ret = category, poi_service_search_by_address : %d\n", ret);
148
149
150         sleep(10);
151
152         poi_filter_create(&filter);
153         poi_filter_set(filter, "KEYWORD", "cafe");
154         poi_preference_create(&pref);
155         poi_preference_set_max_result(pref, 5);
156         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
157         poi_service_set_preference(poi_manager, pref);
158
159         ret = poi_service_search_by_address(poi_manager, addr, 400, filter, _service_search_cb , NULL, NULL);
160         printf("ret = keyword, poi_service_search_by_address : %d\n", ret);
161
162         sleep(10);
163
164         poi_filter_create(&filter);
165         poi_filter_set(filter, "POIName", "cafe");
166         poi_preference_create(&pref);
167         poi_preference_set_max_result(pref, 5);
168         poi_preference_set_sort(pref, "Distance", POI_SORTORDER_DESC);
169         poi_service_set_preference(poi_manager, pref);
170
171         ret = poi_service_search_by_address(poi_manager, addr, 400, filter, _service_search_cb , NULL, NULL);
172         printf("ret = POIName, poi_service_search_by_address : %d\n", ret);
173         if (poi_manager) {
174                 poi_service_destroy(poi_manager);
175         }
176         sleep(10);
177         return 0;
178 }
179
180 int main(){
181         GError *gerr = NULL;
182         gint c = 0;
183         // If application is executed by AUL, this is not needed.
184         g_setenv("PKG_NAME", "com.samsung.location-api-test", 1);
185
186 #if !GLIB_CHECK_VERSION (2, 31, 0)
187         if( !g_thread_supported() )
188         {
189                 g_thread_init(NULL);
190         }
191 #endif
192
193         GThread *g_main;
194         g_main = g_thread_create(GmainThread, NULL, TRUE, &gerr);
195         if (!g_main) {
196                 g_debug("Error create gmain thread: Err domain[%d] Err code[%d] Err msg[%s]",
197                         gerr->domain, gerr->code, gerr->message);
198                 g_error_free(gerr);
199                 return 0;
200         }
201
202         poi_test();
203         if ((c = getchar()) == EOF) {
204                 printf("getchar return EOF \n");
205         }
206
207         return 0;
208
209
210 }
211