return MAPS_ERROR_NONE;
}
+void session::command_handler::set_supported_place_data(maps_place_h place)
+{
+ if (!place || !plugin()) return;
+
+ maps_int_hashtable_h data_supported = NULL;
+ if (maps_int_hashtable_create(&data_supported) != MAPS_ERROR_NONE) return;
+
+ __put_to_hashtable(this, MAPS_PLACE_ADDRESS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_RATING, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_CATEGORIES, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_ATTRIBUTES, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_CONTACTS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_EDITORIALS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_REVIEWS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_IMAGE, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_SUPPLIER, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_RELATED, data_supported);
+
+ _maps_place_set_supported_data(place, data_supported);
+ maps_int_hashtable_destroy(data_supported);
+}
+
+bool session::command_handler::set_supported_place_list_data_cb(int index, maps_place_h place, void *user_data)
+{
+ if (!place || !user_data)
+ return false;
+
+ maps_int_hashtable_h data_supported = (maps_int_hashtable_h)user_data;
+ _maps_place_set_supported_data(place, data_supported);
+ return true;
+}
+
+void session::command_handler::set_supported_place_list_data(maps_place_list_h place_list)
+{
+ if (!place_list || !plugin()) return;
+
+ maps_int_hashtable_h data_supported = NULL;
+ if (maps_int_hashtable_create(&data_supported) != MAPS_ERROR_NONE) return;
+
+ __put_to_hashtable(this, MAPS_PLACE_ADDRESS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_RATING, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_CATEGORIES, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_ATTRIBUTES, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_CONTACTS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_EDITORIALS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_REVIEWS, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_IMAGE, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_SUPPLIER, data_supported);
+ __put_to_hashtable(this, MAPS_PLACE_RELATED, data_supported);
+
+ maps_place_list_foreach(place_list, set_supported_place_list_data_cb, data_supported);
+ maps_int_hashtable_destroy(data_supported);
+}
+
+void session::command_handler::set_supported_route_data(maps_route_h route)
+{
+ if (!route || !plugin()) return;
+
+ maps_int_hashtable_h data_supported = NULL;
+ if (maps_int_hashtable_create(&data_supported) != MAPS_ERROR_NONE) return;
+
+ __put_to_hashtable(this, MAPS_ROUTE_PATH, data_supported);
+ __put_to_hashtable(this, MAPS_ROUTE_SEGMENTS_PATH, data_supported);
+ __put_to_hashtable(this, MAPS_ROUTE_SEGMENTS_MANEUVERS, data_supported);
+
+ _maps_route_set_supported_data(route, data_supported);
+ maps_int_hashtable_destroy(data_supported);
+}
+
/*----------------------------------------------------------------------------*/
/*typedef int (*maps_plugin_geocode_f)(maps_service_h maps, const char *address,
* maps_service_geocode_cb callback, void *user_data, int *request_id); */
{
}
-void session::command_search_place_handler::set_supported_data(maps_place_h place)
-{
- if (!place || !plugin()) return;
-
- maps_int_hashtable_h data_supported = NULL;
- if (maps_int_hashtable_create(&data_supported) != MAPS_ERROR_NONE) return;
-
- __put_to_hashtable(this, MAPS_PLACE_ADDRESS, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_RATING, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_CATEGORIES, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_ATTRIBUTES, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_CONTACTS, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_EDITORIALS, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_REVIEWS, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_IMAGE, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_SUPPLIER, data_supported);
- __put_to_hashtable(this, MAPS_PLACE_RELATED, data_supported);
-
- _maps_place_set_supported_data(place, data_supported);
- maps_int_hashtable_destroy(data_supported);
-}
-
bool session::command_search_place_handler::foreach_place_cb(maps_error_e error,
int request_id,
int index,
/* Check which data features are supported */
if (cloned_result)
- handler->set_supported_data(cloned_result);
+ handler->set_supported_place_data(cloned_result);
/* Send data to user */
const bool b = handler->callback(error, handler->user_req_id, index, length,
request_id, handler->plg_req_id);
}
+ /* Check which data features are supported */
+ if (place_list)
+ handler->set_supported_place_list_data(place_list);
+
/* Send data to user */
handler->callback(error, handler->user_req_id, total, place_list, handler->user_data);
error = (maps_error_e) maps_place_clone(place, &cloned_result);
maps_place_destroy(place);
+ /* Check which data features are supported */
+ if (cloned_result)
+ handler->set_supported_place_data(cloned_result);
+
/* Send data to user */
handler->callback(error, handler->user_req_id, cloned_result, handler->user_data);
{
}
-void session::command_search_route_handler::set_supported_data(maps_route_h route)
-{
- if (!route || !plugin())
- return;
-
- maps_int_hashtable_h data_supported = NULL;
- if (maps_int_hashtable_create(&data_supported) != MAPS_ERROR_NONE)
- return;
-
- __put_to_hashtable(this, MAPS_ROUTE_PATH, data_supported);
- __put_to_hashtable(this, MAPS_ROUTE_SEGMENTS_PATH, data_supported);
- __put_to_hashtable(this, MAPS_ROUTE_SEGMENTS_MANEUVERS, data_supported);
-
- _maps_route_set_supported_data(route, data_supported);
- maps_int_hashtable_destroy(data_supported);
-}
-
bool session::command_search_route_handler::foreach_route_cb(maps_error_e error,
int request_id,
int index,
/* Check which data features are supported */
if (cloned_result)
- handler->set_supported_data(cloned_result);
+ handler->set_supported_route_data(cloned_result);
/* Send data to user */
const bool b =
rotation_angle += cmd->rotation_angle;
cmd->set_merged();
}
-}
\ No newline at end of file
+}