Tizen 2.0 Release
[framework/system/oma-dm-agent.git] / src / agent / framework / task / oma_dm_task_request.c
1 /*
2  * oma-dm-agent
3  * Copyright (c) 2012 Samsung Electronics Co., Ltd.
4  *
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
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
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.
16  */
17
18 /*lib*/
19 #include <stdio.h>
20
21 /*sync-agent*/
22 #include <sync_agent.h>
23
24 /*dm-agent*/
25 #include "framework/task/oma_dm_task_request.h"
26 #include "framework/task/oma_dm_task_spec.h"
27
28 #ifndef OMADM_AGENT_LOG
29 #undef LOG_TAG
30 #define LOG_TAG "TASK_SPEC"
31 #endif
32
33 DM_ERROR dm_init_task_request()
34 {
35         _EXTERN_FUNC_ENTER;
36
37         int request_msg_id = -1;
38         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
39
40         _DEBUG_INFO(" calling initt_async_request_task\n");
41         sync_agent_request_async_task(EC_MSG_TYPE_DM_INIT_TASK_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, &request_msg_id);
42
43         _DEBUG_INFO("  init_async_request_task done: %d", request_msg_id);
44         if (request_msg_id == -1) {
45                 _EXTERN_FUNC_EXIT;
46                 return DM_ERR_ASYNC_TASK;
47         }
48         _EXTERN_FUNC_EXIT;
49         return DM_OK;
50 }
51
52 DM_ERROR dm_reset_task_request()
53 {
54         _EXTERN_FUNC_ENTER;
55
56         int request_msg_id = -1;
57         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
58
59         _DEBUG_INFO(" calling reset_async_request_task\n");
60         sync_agent_request_async_task(EC_MSG_TYPE_DM_RESET_TASK_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, &request_msg_id);
61
62         _DEBUG_INFO(" reset_async_request_task: %d", request_msg_id);
63         if (request_msg_id == -1) {
64                 _EXTERN_FUNC_EXIT;
65                 return DM_ERR_ASYNC_TASK;
66         }
67         _EXTERN_FUNC_EXIT;
68         return DM_OK;
69 }
70
71 DM_ERROR bootstrap_task_request()
72 {
73         _EXTERN_FUNC_ENTER;
74
75         int bootstrapType = 0;
76         void *in_param_value_array[1] = { &bootstrapType };
77         int in_param_index_array[1] = { 0 };
78         sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_INT };
79         int request_msg_id = -1;
80         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
81
82         _DEBUG_INFO(" calling bootstrap_async_request_task\n");
83
84         sync_agent_request_async_task(EC_MSG_TYPE_BOOTSTRAP_TASK_REQUEST, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, NULL, NULL, &request_msg_id);
85
86         _DEBUG_INFO(" bootstrap_async_request_task done: %d", request_msg_id);
87         if (request_msg_id == -1) {
88                 _EXTERN_FUNC_EXIT;
89                 return DM_ERR_ASYNC_TASK;
90         }
91         _EXTERN_FUNC_EXIT;
92         return DM_OK;
93 }
94
95 DM_ERROR dm_fumo_common_task_request(Event_Contents * pEvent_data)
96 {
97
98         _EXTERN_FUNC_ENTER;
99
100         void *in_param_value_array[1] = { &pEvent_data };
101         int in_param_index_array[1] = { 0 };
102         sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_STRUCT };
103
104         int request_msg_id = -1;
105         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
106
107         _DEBUG_INFO(" calling common_async_request_task\n");
108
109         sync_agent_request_async_task(EC_MSG_TYPE_DM_FUMO_COMMON_TASK_REQUEST, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, NULL, NULL, &request_msg_id);
110
111         _DEBUG_INFO(" common_async_request_task done : %d", request_msg_id);
112
113         if (request_msg_id == -1) {
114                 _EXTERN_FUNC_EXIT;
115                 return DM_ERR_ASYNC_TASK;
116         }
117         _EXTERN_FUNC_EXIT;
118         return DM_OK;
119 }
120
121 DM_ERROR dm_fumo_ui_task_request(Event_Contents * pEvent_data)
122 {
123         _EXTERN_FUNC_ENTER;
124
125         void *in_param_value_array[1] = { &pEvent_data };
126         int in_param_index_array[1] = { 0 };
127         sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_STRUCT };
128
129         int request_msg_id = -1;
130         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
131
132         _DEBUG_INFO(" calling common_async_request_task\n");
133
134         sync_agent_request_async_task(EC_MSG_TYPE_DM_FUMO_UI_TASK_REQUEST, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, NULL, NULL, &request_msg_id);
135
136         _DEBUG_INFO(" common_async_request_task done: %d", request_msg_id);
137         if (request_msg_id == -1) {
138                 _EXTERN_FUNC_EXIT;
139                 return DM_ERR_ASYNC_TASK;
140         }
141         _EXTERN_FUNC_EXIT;
142         return DM_OK;
143 }
144
145 DM_ERROR dm_lawmo_common_task_request(Event_Contents * pEvent_data)
146 {
147         _EXTERN_FUNC_ENTER;
148
149         void *in_param_value_array[1] = { &pEvent_data };
150         int in_param_index_array[1] = { 0 };
151         sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_STRUCT };
152
153         int request_msg_id = -1;
154         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
155
156         _DEBUG_INFO(" calling common_async_request_task\n");
157
158         sync_agent_request_async_task(EC_MSG_TYPE_DM_LAWMO_COMMON_TASK_REQUEST, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, NULL, NULL, &request_msg_id);
159
160         _DEBUG_INFO(" common_async_request_task done: %d", request_msg_id);
161         if (request_msg_id == -1) {
162                 _EXTERN_FUNC_EXIT;
163                 return DM_ERR_ASYNC_TASK;
164         }
165         _EXTERN_FUNC_EXIT;
166         return DM_OK;
167
168 }
169
170 DM_ERROR genericAlert_task_request()
171 {
172         _EXTERN_FUNC_ENTER;
173
174         int request_msg_id = -1;
175         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
176
177         _DEBUG_INFO(" calling generic_async_request_task\n");
178         sync_agent_request_async_task(EC_MSG_TYPE_GENERICALERT_TASK_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, &request_msg_id);
179
180         _DEBUG_INFO(" generic_async_request_task done: %d", request_msg_id);
181         if (request_msg_id == -1) {
182                 _EXTERN_FUNC_EXIT;
183                 return DM_ERR_ASYNC_TASK;
184         }
185         _EXTERN_FUNC_EXIT;
186         return DM_OK;
187
188 }
189
190 DM_ERROR fumo_serviceEngine_task_request()
191 {
192         _EXTERN_FUNC_ENTER;
193
194         int request_msg_id = -1;
195         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
196
197         _DEBUG_INFO(" calling service_engine_async_request_task\n");
198         sync_agent_request_async_task(EC_MSG_TYPE_FUMO_SERVICE_ENGINE_TASK_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, &request_msg_id);
199
200         _DEBUG_INFO(" service_engine_async_request_task done: %d", request_msg_id);
201         if (request_msg_id == -1) {
202                 _EXTERN_FUNC_EXIT;
203                 return DM_ERR_ASYNC_TASK;
204         }
205         _EXTERN_FUNC_EXIT;
206         return DM_OK;
207 }
208
209 DM_ERROR lawmo_serviceEngine_task_request()
210 {
211         _EXTERN_FUNC_ENTER;
212
213         int request_msg_id = -1;
214         /*sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN; */
215
216         _DEBUG_INFO(" calling service_engine_async_request_task\n");
217         sync_agent_request_async_task(EC_MSG_TYPE_LAWMO_SERVICE_ENGINE_TASK_REQUEST, 0, 0, NULL, NULL, NULL, NULL, NULL, &request_msg_id);
218
219         _DEBUG_INFO(" service_engine_async_request_task done: %d", request_msg_id);
220         if (request_msg_id == -1) {
221                 _EXTERN_FUNC_EXIT;
222                 return DM_ERR_ASYNC_TASK;
223         }
224         _EXTERN_FUNC_EXIT;
225         return DM_OK;
226 }
227
228 DM_ERROR fumo_schedule_task_request(Reminder_Interval remider_interval_type)
229 {
230         _EXTERN_FUNC_ENTER;
231
232         DM_ERROR ret = DM_OK;
233         void *in_param_value_array[1] = { &remider_interval_type };
234         int in_param_index_array[1] = { 0 };
235         sync_agent_ec_value_type_e in_param_value_type_array[1] = { SYNC_AGENT_EC_VALUE_TYPE_INT };
236         int request_msg_id = -1;
237         sync_agent_ec_task_error_e task_error = SYNC_AGENT_EC_TASK_ERROR_NOT_YET_RUN;
238         sync_agent_ec_uint out_param_cnt = 0;
239         sync_agent_ec_param_param_s **out_param_array = NULL;
240
241         _DEBUG_INFO(" calling fumo_schedule_sync_request_task\n");
242
243         sync_agent_request_sync_task(EC_MSG_TYPE_FUMO_SCHEDULE_TASK_REQUEST, 0, 1, in_param_index_array, in_param_value_type_array, in_param_value_array, &request_msg_id, &task_error, &out_param_cnt, &out_param_array);
244
245         _DEBUG_INFO(" fumo_schedule_sync_request_task done: %d", request_msg_id);
246
247         sync_agent_get_param_value(&(out_param_array[0]->param_value), SYNC_AGENT_EC_VALUE_TYPE_INT, &ret);
248
249         if (request_msg_id == -1) {
250                 _EXTERN_FUNC_EXIT;
251                 return DM_ERR_ASYNC_TASK;
252         }
253
254         _EXTERN_FUNC_EXIT;
255         return DM_OK;
256 }
257
258 void cancel_task(int task_id)
259 {
260         _EXTERN_FUNC_ENTER;
261
262         sync_agent_cancel_task(task_id);
263
264         _EXTERN_FUNC_EXIT;
265 }