3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 #include "utility/sync_util.h"
21 #include "utility/fw_alloc.h"
22 #include "device-manager/interface.h"
23 #include "device-manager/interface_internal.h"
24 #include "device-manager/mdm_error.h"
25 #include "device-manager/mdm_control_code.h"
26 #include "device-manager/mdm_type.h"
27 #include "plugin/device_manager_plugin.h"
30 #define EXPORT_API __attribute__ ((visibility("default")))
33 #ifndef SYNC_AGENT_LOG
35 #define LOG_TAG "AF_MDM"
38 EXPORT_API sync_agent_dm_mdm_return_e sync_agent_start_mdm_service(int mdm_plugin_id, char *pkgName)
42 retvm_if(pkgName == NULL, SYNC_AGENT_DM_MDM_FAILED, "pkgName is NULL !!");
44 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
46 plugin_start_service_cb func_point_start_service = plugin_get_function_start_service(mdm_plugin_id);
48 retvm_if(func_point_start_service == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_start_service_cb !!");
50 res = func_point_start_service(pkgName);
57 EXPORT_API sync_agent_dm_mdm_return_e sync_agent_stop_mdm_service(int mdm_plugin_id, char *pkgName)
61 retvm_if(pkgName == NULL, SYNC_AGENT_DM_MDM_FAILED, "pkgName is NULL !!");
63 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
65 plugin_stop_service_cb func_point_stop_service = plugin_get_function_stop_service(mdm_plugin_id);
67 retvm_if(func_point_stop_service == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_stop_service_cb !!");
69 res = func_point_stop_service(pkgName);
76 EXPORT_API sync_agent_dm_mdm_return_e sync_agent_set_mdm_value(int mdm_plugin_id, sync_agent_dm_mdm_ctrl_e ctrl, ...)
81 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
83 plugin_set_device_manager_value_cb func_point_set_device_manager_value = plugin_get_function_set_device_manager_value(mdm_plugin_id);
85 retvm_if(func_point_set_device_manager_value == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_set_device_manager_value_cb !!");
88 res = func_point_set_device_manager_value(ctrl, va);
96 EXPORT_API sync_agent_dm_mdm_return_e sync_agent_get_mdm_value(int mdm_plugin_id, sync_agent_dm_mdm_ctrl_e ctrl, ...)
101 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
103 plugin_get_device_manager_value_cb func_point_get_device_manager_value = plugin_get_function_get_device_manager_value(mdm_plugin_id);
105 retvm_if(func_point_get_device_manager_value == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_get_device_manager_value_cb !!");
108 res = func_point_get_device_manager_value(ctrl, va);
116 EXPORT_API sync_agent_dm_mdm_return_e sync_agent_execute_mdm(int mdm_plugin_id, sync_agent_dm_mdm_ctrl_e ctrl, ...)
121 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
123 plugin_execute_device_manager_cb func_point_execute_device_manager = plugin_get_function_execute_device_manager(mdm_plugin_id);
125 retvm_if(func_point_execute_device_manager == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_execute_device_manager_cb !!");
128 res = func_point_execute_device_manager(ctrl, va);
136 int dm_register_mdm_callback(int mdm_plugin_id, sync_agent_dm_mdm_event_e event, sync_agent_device_manager_cb callback, void *userdata)
140 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
142 plugin_register_device_manager_callback_cb func_point_register_device_manager_callback = plugin_get_function_register_device_manager_callback(mdm_plugin_id);
144 retvm_if(func_point_register_device_manager_callback == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_device_manager_register_callback_cb !!");
146 res = func_point_register_device_manager_callback(event, callback, userdata);
153 sync_agent_dm_mdm_return_e dm_register_deregister_mdm_callback(int mdm_plugin_id, int handle)
157 sync_agent_dm_mdm_return_e res = SYNC_AGENT_DM_MDM_SUCCEEDED;
159 plugin_deregister_device_manager_callback_cb func_point_deregister_device_manager_callback = plugin_get_function_deregister_device_manager_callback(mdm_plugin_id);
161 retvm_if(func_point_deregister_device_manager_callback == NULL, SYNC_AGENT_DM_MDM_FAILED, "cannot get plugin_device_manager_deregister_callback_cb !!");
163 res = func_point_deregister_device_manager_callback(handle);