const char *module, int *init_error)
{
/* 1.Initialize plugin */
- if (info.file.empty() || !init_error)
+ if (info.file.empty() || !init_error) {
+ if (init_error)
+ *init_error = MAPS_ERROR_NOT_SUPPORTED;
return NULL;
+ }
*init_error = MAPS_ERROR_NONE;
GMod *plugin = gmod_new(info.file, TRUE);
if (!plugin) {
MAPS_LOGE("Open Module Failed: %s", info.file.c_str());
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
return NULL;
}
/* 2. Perform steps to completely initialize a plugin */
do {
if (!new_plugin) {
- MAPS_LOGE("OUT_OF_MEMORY(0x%08x)",
- MAPS_ERROR_OUT_OF_MEMORY);
+ MAPS_LOGE("OUT_OF_MEMORY(0x%08x)", MAPS_ERROR_OUT_OF_MEMORY);
+ *init_error = MAPS_ERROR_OUT_OF_MEMORY;
break;
}
(maps_plugin_reverse_geocode_f) gmod_find_sym(plugin,
"maps_plugin_reverse_geocode");
new_plugin->interface.maps_plugin_multi_reverse_geocode =
- (maps_plugin_multi_reverse_geocode_f)
- gmod_find_sym(plugin, "maps_plugin_multi_reverse_geocode");
+ (maps_plugin_multi_reverse_geocode_f) gmod_find_sym(plugin,
+ "maps_plugin_multi_reverse_geocode");
/* Place */
new_plugin->interface.maps_plugin_search_place =
(maps_plugin_search_route_f) gmod_find_sym(plugin,
"maps_plugin_search_route");
new_plugin->interface.maps_plugin_search_route_waypoints =
- (maps_plugin_search_route_waypoints_f)
- gmod_find_sym(plugin,
+ (maps_plugin_search_route_waypoints_f) gmod_find_sym(plugin,
"maps_plugin_search_route_waypoints");
/* Cancel Request */
/* 2.3 Check whether the plugin init function is valid */
if (!new_plugin->interface.maps_plugin_init) {
- MAPS_LOGE(
- "ERROR! Plugin initialization function is invalid");
+ MAPS_LOGE("ERROR! Plugin initialization function is invalid");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
ret = new_plugin->interface.maps_plugin_init_module((maps_plugin_h *) (&new_plugin), module);
if (ret != MAPS_ERROR_NONE) {
- MAPS_LOGE("ERROR! Plugin initialization function ""failed: %d", ret);
+ MAPS_LOGE("ERROR! Plugin initialization function failed: %d", ret);
+ *init_error = ret;
break;
}
if (!new_plugin->interface.maps_plugin_set_provider_key) {
- MAPS_LOGE("ERROR! Plugin set_provider_key function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin set_provider_key function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
if (!new_plugin->interface.maps_plugin_get_provider_key) {
- MAPS_LOGE("ERROR! Plugin set_provider_key function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin set_provider_key function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
if (!new_plugin->interface.maps_plugin_set_preference) {
- MAPS_LOGE("ERROR! Plugin set_preference function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin set_preference function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
if (!new_plugin->interface.maps_plugin_get_preference) {
- MAPS_LOGE("ERROR! Plugin get_preference function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin get_preference function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
if (!new_plugin->interface.maps_plugin_is_data_supported) {
- MAPS_LOGE("ERROR! Plugin support_is_data_supported function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin support_is_data_supported function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
if (!new_plugin->interface.maps_plugin_is_service_supported) {
- MAPS_LOGE("ERROR! Plugin support_is_service_supported function is NULL: %d", ret);
+ MAPS_LOGE("ERROR! Plugin support_is_service_supported function is NULL");
+ *init_error = MAPS_ERROR_SERVICE_NOT_AVAILABLE;
break;
}
session::command_handler::destroy);
if (!new_plugin->pending_request_maps) {
MAPS_LOGE("OUT_OF_MEMORY(0x%08x)", MAPS_ERROR_OUT_OF_MEMORY);
+ *init_error = MAPS_ERROR_OUT_OF_MEMORY;
break;
}
g_mutex_init(&new_plugin->pending_request_mutex);