4 * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
22 #include "calendar_service.h"
23 #include "calendar_db.h"
24 #include "calendar_query.h"
25 #include "calendar_vcalendar.h"
26 #include "calendar_reminder.h"
28 #include "cal_typedef.h"
30 #include "cal_db_util.h"
31 #include "cal_ipc_marshal.h"
32 #include "cal_internal.h"
33 #include "cal_server_ipc.h"
35 void _cal_server_ipc_connect(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
37 int ret = CALENDAR_ERROR_NONE;
39 ret = calendar_connect();
43 *outdata = pims_ipc_data_create(0);
46 ERR("pims_ipc_data_create fail");
49 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
51 pims_ipc_data_destroy(*outdata);
53 ERR("pims_ipc_data_put fail");
59 ERR("outdata is NULL");
64 void _cal_server_ipc_disconnect(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
66 int ret = CALENDAR_ERROR_NONE;
68 ret = calendar_disconnect();
72 *outdata = pims_ipc_data_create(0);
75 ERR("pims_ipc_data_create fail");
78 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
80 pims_ipc_data_destroy(*outdata);
82 ERR("pims_ipc_data_put fail");
88 ERR("outdata is NULL");
94 void _cal_server_ipc_db_insert_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
96 int ret = CALENDAR_ERROR_NONE;
97 calendar_record_h record = NULL;
102 ret = _cal_ipc_unmarshal_record(indata,&record);
103 if (ret != CALENDAR_ERROR_NONE)
105 ERR("_cal_ipc_unmarshal_record fail");
112 ret = CALENDAR_ERROR_INVALID_PARAMETER;
113 ERR("_cal_server_ipc_db_insert_record fail");
117 ret = calendar_db_insert_record(record, &id);
121 *outdata = pims_ipc_data_create(0);
124 ERR("pims_ipc_data_create fail");
127 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
129 pims_ipc_data_destroy(*outdata);
131 ERR("pims_ipc_data_put fail");
134 if (ret == CALENDAR_ERROR_NONE)
136 int transaction_ver = _cal_db_util_get_transaction_ver();
137 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
139 pims_ipc_data_destroy(*outdata);
141 ERR("_cal_ipc_marshal fail");
142 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
145 if (_cal_ipc_marshal_int(id,*outdata) != CALENDAR_ERROR_NONE)
147 pims_ipc_data_destroy(*outdata);
149 ERR("_cal_ipc_marshal fail");
150 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
154 ret = _cal_ipc_marshal_record_get_primary_id(record, &property_id, &id);
156 if (ret == CALENDAR_ERROR_NONE)
158 if (pims_ipc_data_put(*outdata,(void*)&property_id,sizeof(unsigned int)) != 0)
160 pims_ipc_data_destroy(*outdata);
161 ERR("_cal_ipc_marshal fail");
162 ret = CALENDAR_ERROR_INVALID_PARAMETER;
165 if (_cal_ipc_marshal_int(id,*outdata) != CALENDAR_ERROR_NONE)
167 pims_ipc_data_destroy(*outdata);
168 ERR("_cal_ipc_marshal fail");
169 ret = CALENDAR_ERROR_INVALID_PARAMETER;
175 pims_ipc_data_destroy(*outdata);
176 ret = CALENDAR_ERROR_INVALID_PARAMETER;
184 ERR("outdata is NULL");
191 *outdata = pims_ipc_data_create(0);
194 ERR("pims_ipc_data_create fail");
197 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
199 pims_ipc_data_destroy(*outdata);
201 ERR("pims_ipc_data_put fail");
207 ERR("outdata is NULL");
213 calendar_record_destroy(record,true);
218 void _cal_server_ipc_db_get_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
220 int ret = CALENDAR_ERROR_NONE;
221 char* view_uri = NULL;
223 calendar_record_h record = NULL;
227 ret = _cal_ipc_unmarshal_char(indata,&view_uri);
228 if (ret != CALENDAR_ERROR_NONE)
230 ERR("_cal_ipc_unmarshal_char fail");
233 ret = _cal_ipc_unmarshal_int(indata,&id);
234 if (ret != CALENDAR_ERROR_NONE)
236 ERR("_cal_ipc_unmarshal_int fail");
242 ret = CALENDAR_ERROR_INVALID_PARAMETER;
243 ERR("_cal_server_ipc_db_insert_record fail");
247 ret = calendar_db_get_record(view_uri,id,&record);
252 *outdata = pims_ipc_data_create(0);
255 ERR("pims_ipc_data_create fail");
258 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
260 pims_ipc_data_destroy(*outdata);
262 ERR("pims_ipc_data_put fail");
265 if (_cal_ipc_marshal_record(record, *outdata) != CALENDAR_ERROR_NONE)
267 pims_ipc_data_destroy(*outdata);
269 ERR("_cal_ipc_marshal_record fail");
275 ERR("outdata is NULL");
280 calendar_record_destroy(record,true);
286 void _cal_server_ipc_db_update_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
288 int ret = CALENDAR_ERROR_NONE;
289 calendar_record_h record = NULL;
293 ret = _cal_ipc_unmarshal_record(indata,&record);
294 if (ret != CALENDAR_ERROR_NONE)
296 ERR("_cal_ipc_unmarshal_record fail");
302 ret = CALENDAR_ERROR_INVALID_PARAMETER;
303 ERR("_cal_server_ipc_db_insert_record fail");
307 ret = calendar_db_update_record(record);
312 *outdata = pims_ipc_data_create(0);
315 ERR("pims_ipc_data_create fail");
318 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
320 pims_ipc_data_destroy(*outdata);
322 ERR("pims_ipc_data_put fail");
325 if (ret == CALENDAR_ERROR_NONE)
327 int transaction_ver = _cal_db_util_get_transaction_ver();
328 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
330 pims_ipc_data_destroy(*outdata);
331 ERR("_cal_ipc_marshal fail");
332 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
339 ERR("outdata is NULL");
344 calendar_record_destroy(record,true);
349 void _cal_server_ipc_db_delete_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
351 int ret = CALENDAR_ERROR_NONE;
352 char* view_uri = NULL;
357 ret = _cal_ipc_unmarshal_char(indata,&view_uri);
358 if (ret != CALENDAR_ERROR_NONE)
360 ERR("_cal_ipc_unmarshal_record fail");
363 ret = _cal_ipc_unmarshal_int(indata,&id);
364 if (ret != CALENDAR_ERROR_NONE)
366 ERR("_cal_ipc_unmarshal_int fail");
372 ret = CALENDAR_ERROR_INVALID_PARAMETER;
373 ERR("_cal_server_ipc_db_insert_record fail");
377 ret = calendar_db_delete_record(view_uri,id);
382 *outdata = pims_ipc_data_create(0);
385 ERR("pims_ipc_data_create fail");
388 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
390 pims_ipc_data_destroy(*outdata);
392 ERR("pims_ipc_data_put fail");
395 if (ret == CALENDAR_ERROR_NONE)
397 int transaction_ver = _cal_db_util_get_transaction_ver();
398 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
400 pims_ipc_data_destroy(*outdata);
401 ERR("_cal_ipc_marshal fail");
402 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
409 ERR("outdata is NULL");
417 void _cal_server_ipc_db_get_all_records(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
419 int ret = CALENDAR_ERROR_NONE;
420 char* view_uri = NULL;
423 calendar_list_h list = NULL;
427 ret = _cal_ipc_unmarshal_char(indata,&view_uri);
428 if (ret != CALENDAR_ERROR_NONE)
430 ERR("_cal_ipc_unmarshal_record fail");
433 ret = _cal_ipc_unmarshal_int(indata,&offset);
434 if (ret != CALENDAR_ERROR_NONE)
436 ERR("_cal_ipc_unmarshal_int fail");
439 ret = _cal_ipc_unmarshal_int(indata,&limit);
440 if (ret != CALENDAR_ERROR_NONE)
442 ERR("_cal_ipc_unmarshal_int fail");
448 ret = CALENDAR_ERROR_INVALID_PARAMETER;
449 ERR("_cal_server_ipc_db_insert_record fail");
453 ret = calendar_db_get_all_records(view_uri,offset,limit,&list);
457 *outdata = pims_ipc_data_create(0);
460 ERR("pims_ipc_data_create fail");
463 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
465 pims_ipc_data_destroy(*outdata);
467 ERR("pims_ipc_data_put fail");
470 ret = _cal_ipc_marshal_list(list,*outdata);
472 if (ret != CALENDAR_ERROR_NONE)
474 ERR("_cal_ipc_unmarshal_int fail");
480 ERR("outdata is NULL");
488 *outdata = pims_ipc_data_create(0);
491 ERR("pims_ipc_data_create fail");
494 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
496 pims_ipc_data_destroy(*outdata);
498 ERR("pims_ipc_data_put fail");
504 ERR("outdata is NULL");
510 calendar_list_destroy(list,true);
516 void _cal_server_ipc_db_get_records_with_query(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
518 int ret = CALENDAR_ERROR_NONE;
519 calendar_query_h query = NULL;
522 calendar_list_h list = NULL;
526 ret = _cal_ipc_unmarshal_query(indata,&query);
527 if (ret != CALENDAR_ERROR_NONE)
529 ERR("_cal_ipc_unmarshal_record fail");
532 ret = _cal_ipc_unmarshal_int(indata,&offset);
533 if (ret != CALENDAR_ERROR_NONE)
535 ERR("_cal_ipc_unmarshal_int fail");
538 ret = _cal_ipc_unmarshal_int(indata,&limit);
539 if (ret != CALENDAR_ERROR_NONE)
541 ERR("_cal_ipc_unmarshal_int fail");
547 ret = CALENDAR_ERROR_INVALID_PARAMETER;
548 ERR("_cal_server_ipc_db_insert_record fail");
552 ret = calendar_db_get_records_with_query(query,offset,limit,&list);
556 *outdata = pims_ipc_data_create(0);
559 ERR("pims_ipc_data_create fail");
562 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
564 pims_ipc_data_destroy(*outdata);
566 ERR("pims_ipc_data_put fail");
569 ret = _cal_ipc_marshal_list(list,*outdata);
571 if (ret != CALENDAR_ERROR_NONE)
573 ERR("_cal_ipc_unmarshal_int fail");
579 ERR("outdata is NULL");
586 *outdata = pims_ipc_data_create(0);
589 ERR("pims_ipc_data_create fail");
592 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
594 pims_ipc_data_destroy(*outdata);
596 ERR("pims_ipc_data_put fail");
602 ERR("outdata is NULL");
608 calendar_list_destroy(list,true);
612 calendar_query_destroy(query);
617 void _cal_server_ipc_db_clean_after_sync(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
619 int ret = CALENDAR_ERROR_NONE;
620 int calendar_book_id = 0;
624 ret = _cal_ipc_unmarshal_int(indata,&calendar_book_id);
625 if (ret != CALENDAR_ERROR_NONE)
627 ERR("_cal_ipc_unmarshal_int fail");
633 ret = CALENDAR_ERROR_INVALID_PARAMETER;
634 ERR("_cal_server_ipc_db_insert_record fail");
638 ret = calendar_db_clean_after_sync(calendar_book_id);
643 *outdata = pims_ipc_data_create(0);
646 ERR("pims_ipc_data_create fail");
649 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
651 pims_ipc_data_destroy(*outdata);
653 ERR("pims_ipc_data_put fail");
659 ERR("outdata is NULL");
665 void _cal_server_ipc_db_get_count(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
667 int ret = CALENDAR_ERROR_NONE;
668 char* view_uri = NULL;
673 ret = _cal_ipc_unmarshal_char(indata,&view_uri);
674 if (ret != CALENDAR_ERROR_NONE)
676 ERR("_cal_ipc_unmarshal_record fail");
682 ret = CALENDAR_ERROR_INVALID_PARAMETER;
683 ERR("_cal_server_ipc_db_insert_record fail");
687 ret = calendar_db_get_count(view_uri,&count);
691 *outdata = pims_ipc_data_create(0);
694 ERR("pims_ipc_data_create fail");
697 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
699 pims_ipc_data_destroy(*outdata);
701 ERR("pims_ipc_data_put fail");
704 ret = _cal_ipc_marshal_int(count,*outdata);
706 if (ret != CALENDAR_ERROR_NONE)
708 ERR("_cal_ipc_unmarshal_int fail");
714 ERR("outdata is NULL");
721 *outdata = pims_ipc_data_create(0);
724 ERR("pims_ipc_data_create fail");
727 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
729 pims_ipc_data_destroy(*outdata);
731 ERR("pims_ipc_data_put fail");
737 ERR("outdata is NULL");
744 void _cal_server_ipc_db_get_count_with_query(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
746 int ret = CALENDAR_ERROR_NONE;
747 calendar_query_h query = NULL;
752 ret = _cal_ipc_unmarshal_query(indata,&query);
753 if (ret != CALENDAR_ERROR_NONE)
755 ERR("_cal_ipc_unmarshal_record fail");
761 ret = CALENDAR_ERROR_INVALID_PARAMETER;
762 ERR("_cal_server_ipc_db_insert_record fail");
766 ret = calendar_db_get_count_with_query(query,&count);
770 *outdata = pims_ipc_data_create(0);
773 ERR("pims_ipc_data_create fail");
776 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
778 pims_ipc_data_destroy(*outdata);
780 ERR("pims_ipc_data_put fail");
783 ret = _cal_ipc_marshal_int(count,*outdata);
785 if (ret != CALENDAR_ERROR_NONE)
787 ERR("_cal_ipc_unmarshal_int fail");
793 ERR("outdata is NULL");
800 *outdata = pims_ipc_data_create(0);
803 ERR("pims_ipc_data_create fail");
806 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
808 pims_ipc_data_destroy(*outdata);
810 ERR("pims_ipc_data_put fail");
816 ERR("outdata is NULL");
821 calendar_query_destroy(query);
826 void _cal_server_ipc_db_insert_records(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
828 int ret = CALENDAR_ERROR_NONE;
829 calendar_list_h list = NULL;
836 ret = _cal_ipc_unmarshal_list(indata,&list);
837 if (ret != CALENDAR_ERROR_NONE)
839 ERR("_cal_ipc_unmarshal_list fail");
845 ret = CALENDAR_ERROR_INVALID_PARAMETER;
846 ERR("_cal_server_ipc_db_insert_record fail");
850 ret = calendar_db_insert_records(list, &ids, &id_count);
854 *outdata = pims_ipc_data_create(0);
857 ERR("pims_ipc_data_create fail");
860 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
862 pims_ipc_data_destroy(*outdata);
864 ERR("pims_ipc_data_put fail");
868 if(ret == CALENDAR_ERROR_NONE)
870 int transaction_ver = _cal_db_util_get_transaction_ver();
871 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
873 pims_ipc_data_destroy(*outdata);
874 ERR("_cal_ipc_marshal fail");
875 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
878 // marshal : id_count+[ids]*id_count
880 if (pims_ipc_data_put(*outdata,(void*)&id_count,sizeof(int)) != 0)
882 pims_ipc_data_destroy(*outdata);
884 ERR("pims_ipc_data_put fail");
885 ret = CALENDAR_ERROR_INVALID_PARAMETER;
889 for(i=0;i<id_count;i++)
892 if (pims_ipc_data_put(*outdata,(void*)&ids[i],sizeof(int)) != 0)
894 pims_ipc_data_destroy(*outdata);
896 ERR("pims_ipc_data_put fail");
897 ret = CALENDAR_ERROR_INVALID_PARAMETER;
905 ERR("outdata is NULL");
912 *outdata = pims_ipc_data_create(0);
915 ERR("pims_ipc_data_create fail");
918 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
920 pims_ipc_data_destroy(*outdata);
922 ERR("pims_ipc_data_put fail");
928 ERR("outdata is NULL");
933 calendar_list_destroy(list,true);
939 void _cal_server_ipc_db_update_records(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
941 int ret = CALENDAR_ERROR_NONE;
942 calendar_list_h list = NULL;
946 ret = _cal_ipc_unmarshal_list(indata,&list);
947 if (ret != CALENDAR_ERROR_NONE)
949 ERR("_cal_ipc_unmarshal_list fail");
955 ret = CALENDAR_ERROR_INVALID_PARAMETER;
956 ERR("_cal_server_ipc_db_insert_record fail");
960 ret = calendar_db_update_records(list);
964 *outdata = pims_ipc_data_create(0);
967 ERR("pims_ipc_data_create fail");
970 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
972 pims_ipc_data_destroy(*outdata);
974 ERR("pims_ipc_data_put fail");
977 if (ret == CALENDAR_ERROR_NONE)
979 int transaction_ver = _cal_db_util_get_transaction_ver();
980 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
982 pims_ipc_data_destroy(*outdata);
983 ERR("_cal_ipc_marshal fail");
984 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
991 ERR("outdata is NULL");
998 *outdata = pims_ipc_data_create(0);
1001 ERR("pims_ipc_data_create fail");
1004 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1006 pims_ipc_data_destroy(*outdata);
1008 ERR("pims_ipc_data_put fail");
1014 ERR("outdata is NULL");
1019 calendar_list_destroy(list,true);
1024 void _cal_server_ipc_db_delete_records(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1026 int ret = CALENDAR_ERROR_NONE;
1034 ret = _cal_ipc_unmarshal_char(indata,&uri);
1035 if (ret != CALENDAR_ERROR_NONE)
1037 ERR("_cal_ipc_unmarshal_char fail");
1040 ret = _cal_ipc_unmarshal_int(indata,&count);
1041 if (ret != CALENDAR_ERROR_NONE)
1043 ERR("_cal_ipc_unmarshal_int fail");
1050 ids = (int*)malloc(sizeof(int)*count);
1051 for(i=0;i<count;i++)
1053 ret = _cal_ipc_unmarshal_int(indata,&ids[i]);
1054 if (ret != CALENDAR_ERROR_NONE)
1056 ERR("_cal_ipc_unmarshal_int fail");
1063 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1064 ERR("_cal_server_ipc_db_insert_record fail");
1068 ret = calendar_db_delete_records(uri,ids,count);
1072 *outdata = pims_ipc_data_create(0);
1075 ERR("pims_ipc_data_create fail");
1078 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1080 pims_ipc_data_destroy(*outdata);
1082 ERR("pims_ipc_data_put fail");
1085 if (ret == CALENDAR_ERROR_NONE)
1087 int transaction_ver = _cal_db_util_get_transaction_ver();
1088 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
1090 pims_ipc_data_destroy(*outdata);
1091 ERR("_cal_ipc_marshal fail");
1092 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
1099 ERR("outdata is NULL");
1106 *outdata = pims_ipc_data_create(0);
1109 ERR("pims_ipc_data_create fail");
1112 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1114 pims_ipc_data_destroy(*outdata);
1116 ERR("pims_ipc_data_put fail");
1122 ERR("outdata is NULL");
1130 void _cal_server_ipc_db_get_changes_by_version(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1132 int ret = CALENDAR_ERROR_NONE;
1133 char* view_uri = NULL;
1134 int calendar_book_id = 0;
1135 int calendar_db_version = 0;
1136 calendar_list_h record_list = NULL;
1137 int current_calendar_db_version = 0;
1141 ret = _cal_ipc_unmarshal_char(indata,&view_uri);
1142 if (ret != CALENDAR_ERROR_NONE)
1144 ERR("_cal_ipc_unmarshal_char fail");
1147 ret = _cal_ipc_unmarshal_int(indata,&calendar_book_id);
1148 if (ret != CALENDAR_ERROR_NONE)
1150 ERR("_cal_ipc_unmarshal_int fail");
1153 ret = _cal_ipc_unmarshal_int(indata,&calendar_db_version);
1154 if (ret != CALENDAR_ERROR_NONE)
1156 ERR("_cal_ipc_unmarshal_int fail");
1162 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1163 ERR("_cal_server_ipc_db_insert_record fail");
1167 ret = calendar_db_get_changes_by_version(view_uri,calendar_book_id,calendar_db_version,&record_list,¤t_calendar_db_version);
1171 *outdata = pims_ipc_data_create(0);
1174 ERR("pims_ipc_data_create fail");
1177 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1179 pims_ipc_data_destroy(*outdata);
1181 ERR("pims_ipc_data_put fail");
1184 ret = _cal_ipc_marshal_list(record_list,*outdata);
1185 if (ret != CALENDAR_ERROR_NONE)
1187 ERR("_cal_ipc_marshal_list fail");
1190 ret = _cal_ipc_marshal_int(current_calendar_db_version,*outdata);
1191 if (ret != CALENDAR_ERROR_NONE)
1193 ERR("_cal_ipc_unmarshal_int fail");
1199 ERR("outdata is NULL");
1206 *outdata = pims_ipc_data_create(0);
1209 ERR("pims_ipc_data_create fail");
1212 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1214 pims_ipc_data_destroy(*outdata);
1216 ERR("pims_ipc_data_put fail");
1222 ERR("outdata is NULL");
1227 calendar_list_destroy(record_list,true);
1233 void _cal_server_ipc_db_get_current_version(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1235 int ret = CALENDAR_ERROR_NONE;
1236 int calendar_db_version = 0;
1238 ret = calendar_db_get_current_version(&calendar_db_version);
1242 *outdata = pims_ipc_data_create(0);
1245 ERR("pims_ipc_data_create fail");
1248 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1250 pims_ipc_data_destroy(*outdata);
1252 ERR("pims_ipc_data_put fail");
1255 ret = _cal_ipc_marshal_int(calendar_db_version,*outdata);
1256 if (ret != CALENDAR_ERROR_NONE)
1258 ERR("_cal_ipc_marshal_int fail");
1264 ERR("outdata is NULL");
1269 void _cal_server_ipc_db_insert_vcalendars(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1271 int ret = CALENDAR_ERROR_NONE;
1272 char *stream = NULL;
1279 ret = _cal_ipc_unmarshal_char(indata, &stream);
1280 if (ret != CALENDAR_ERROR_NONE)
1282 ERR("unmarshal fail");
1288 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1289 ERR("db_insert_vcalendars fail.");
1293 ret = calendar_db_insert_vcalendars(stream, &ids, &count);
1295 if (ret != CALENDAR_ERROR_NONE)
1297 ERR("calendar_db_insert_vcalendars fail");
1303 *outdata = pims_ipc_data_create(0);
1306 ERR("pims_ipc_data_create fail");
1310 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1312 pims_ipc_data_destroy(*outdata);
1314 ERR("pims_ipc_data_put fail");
1317 if (ret == CALENDAR_ERROR_NONE)
1319 int transaction_ver = _cal_db_util_get_transaction_ver();
1320 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
1322 pims_ipc_data_destroy(*outdata);
1324 ERR("_cal_ipc_marshal fail");
1325 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
1330 ret = _cal_ipc_marshal_int(count,*outdata);
1331 if (ret != CALENDAR_ERROR_NONE)
1333 pims_ipc_data_destroy(*outdata);
1335 ERR("_cal_ipc_marshal_list fail");
1338 for(i=0;i<count;i++)
1340 ret = _cal_ipc_marshal_int(ids[i],*outdata);
1341 if (ret != CALENDAR_ERROR_NONE)
1343 pims_ipc_data_destroy(*outdata);
1345 ERR("_cal_ipc_marshal_list fail");
1352 ERR("outdata is NULL");
1359 *outdata = pims_ipc_data_create(0);
1362 ERR("pims_ipc_data_create fail");
1365 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1367 pims_ipc_data_destroy(*outdata);
1369 ERR("pims_ipc_data_put fail");
1375 ERR("outdata is NULL");
1383 void _cal_server_ipc_db_replace_vcalendars(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1385 int ret = CALENDAR_ERROR_NONE;
1386 char *stream = NULL;
1393 ret = _cal_ipc_unmarshal_char(indata, &stream);
1394 if (ret != CALENDAR_ERROR_NONE)
1396 ERR("unmarshal fail");
1399 ret = _cal_ipc_unmarshal_int(indata, &count);
1400 if (ret != CALENDAR_ERROR_NONE)
1402 ERR("unmarshal fail");
1405 ids = (int*)malloc(sizeof(int)*count);
1411 for(i=0;i<count;i++)
1413 ret = _cal_ipc_unmarshal_int(indata, &ids[i]);
1414 if (ret != CALENDAR_ERROR_NONE)
1416 ERR("unmarshal fail");
1423 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1424 ERR("db_replace_vcalendars fail.");
1428 ret = calendar_db_replace_vcalendars(stream, ids, count);
1430 if (ret != CALENDAR_ERROR_NONE)
1432 ERR("calendar_db_insert_vcalendars fail");
1438 *outdata = pims_ipc_data_create(0);
1441 ERR("pims_ipc_data_create fail");
1445 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1447 pims_ipc_data_destroy(*outdata);
1449 ERR("pims_ipc_data_put fail");
1452 if (ret == CALENDAR_ERROR_NONE)
1454 int transaction_ver = _cal_db_util_get_transaction_ver();
1455 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
1457 pims_ipc_data_destroy(*outdata);
1459 ERR("_cal_ipc_marshal fail");
1460 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
1467 ERR("outdata is NULL");
1474 *outdata = pims_ipc_data_create(0);
1477 ERR("pims_ipc_data_create fail");
1480 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1482 pims_ipc_data_destroy(*outdata);
1484 ERR("pims_ipc_data_put fail");
1490 ERR("outdata is NULL");
1498 void _cal_server_ipc_db_replace_record(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1500 int ret = CALENDAR_ERROR_NONE;
1502 calendar_record_h record = NULL;
1506 ret = _cal_ipc_unmarshal_record(indata,&record);
1507 if (ret != CALENDAR_ERROR_NONE)
1509 ERR("_cal_ipc_unmarshal_record fail");
1512 ret = _cal_ipc_unmarshal_int(indata,&id);
1513 if (ret != CALENDAR_ERROR_NONE)
1515 ERR("_cal_ipc_unmarshal_record fail");
1522 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1523 ERR("_cal_server_ipc_db_insert_record fail");
1527 ret = calendar_db_replace_record(record, id);
1532 *outdata = pims_ipc_data_create(0);
1535 ERR("pims_ipc_data_create fail");
1538 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1540 pims_ipc_data_destroy(*outdata);
1542 ERR("pims_ipc_data_put fail");
1545 if (ret == CALENDAR_ERROR_NONE)
1547 int transaction_ver = _cal_db_util_get_transaction_ver();
1548 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
1550 pims_ipc_data_destroy(*outdata);
1552 ERR("_cal_ipc_marshal fail");
1553 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
1560 ERR("outdata is NULL");
1565 calendar_record_destroy(record,true);
1570 void _cal_server_ipc_db_replace_records(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1572 int ret = CALENDAR_ERROR_NONE;
1576 calendar_list_h list = NULL;
1580 ret = _cal_ipc_unmarshal_list(indata,&list);
1581 if (ret != CALENDAR_ERROR_NONE)
1583 ERR("_cal_ipc_unmarshal_list fail");
1586 ret = _cal_ipc_unmarshal_int(indata, &count);
1587 if (ret != CALENDAR_ERROR_NONE)
1589 ERR("_cal_ipc_unmarshal_int fail");
1596 ids = (int*)malloc(sizeof(int) * count);
1597 for(i = 0; i < count; i++)
1599 ret = _cal_ipc_unmarshal_int(indata,&ids[i]);
1600 if (ret != CALENDAR_ERROR_NONE)
1602 ERR("_cal_ipc_unmarshal_int fail");
1609 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1610 ERR("_cal_server_ipc_db_insert_record fail");
1614 ret = calendar_db_replace_records(list, ids, count);
1618 *outdata = pims_ipc_data_create(0);
1621 ERR("pims_ipc_data_create fail");
1624 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1626 pims_ipc_data_destroy(*outdata);
1628 ERR("pims_ipc_data_put fail");
1631 if (ret == CALENDAR_ERROR_NONE)
1633 int transaction_ver = _cal_db_util_get_transaction_ver();
1634 if (_cal_ipc_marshal_int(transaction_ver,*outdata) != CALENDAR_ERROR_NONE)
1636 pims_ipc_data_destroy(*outdata);
1638 ERR("_cal_ipc_marshal fail");
1639 ret = CALENDAR_ERROR_OUT_OF_MEMORY;
1646 ERR("outdata is NULL");
1653 *outdata = pims_ipc_data_create(0);
1656 ERR("pims_ipc_data_create fail");
1659 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1661 pims_ipc_data_destroy(*outdata);
1663 ERR("pims_ipc_data_put fail");
1669 ERR("outdata is NULL");
1675 calendar_list_destroy(list,true);
1680 void _cal_server_ipc_db_register_reminder(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1682 int ret = CALENDAR_ERROR_NONE;
1684 char *extra_data_key;
1685 char *extra_data_value;
1689 ret = _cal_ipc_unmarshal_char(indata, &pkgname);
1690 if (ret != CALENDAR_ERROR_NONE)
1692 ERR("unmarshal fail");
1695 ret = _cal_ipc_unmarshal_char(indata, &extra_data_key);
1696 if (ret != CALENDAR_ERROR_NONE)
1698 ERR("unmarshal fail");
1701 ret = _cal_ipc_unmarshal_char(indata, &extra_data_value);
1702 if (ret != CALENDAR_ERROR_NONE)
1704 ERR("unmarshal fail");
1710 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1711 ERR("db_insert_vcalendars fail.");
1715 ret = calendar_reminder_add_receiver(pkgname, extra_data_key, extra_data_value);
1716 if (ret != CALENDAR_ERROR_NONE)
1718 ERR("calendar_reminder_add_receiver() fail");
1725 *outdata = pims_ipc_data_create(0);
1728 ERR("pims_ipc_data_create fail");
1731 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1733 pims_ipc_data_destroy(*outdata);
1735 ERR("pims_ipc_data_put fail");
1741 ERR("outdata is NULL");
1746 void _cal_server_ipc_db_unregister_reminder(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1748 int ret = CALENDAR_ERROR_NONE;
1753 ret = _cal_ipc_unmarshal_char(indata, &pkgname);
1754 if (ret != CALENDAR_ERROR_NONE)
1756 ERR("unmarshal fail");
1762 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1763 ERR("db_insert_vcalendars fail.");
1767 ret = calendar_reminder_remove_receiver(pkgname);
1768 if (ret != CALENDAR_ERROR_NONE)
1770 ERR("calendar_reminder_remove_receiver() fail");
1777 *outdata = pims_ipc_data_create(0);
1780 ERR("pims_ipc_data_create fail");
1783 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1785 pims_ipc_data_destroy(*outdata);
1787 ERR("pims_ipc_data_put fail");
1793 ERR("outdata is NULL");
1798 void _cal_server_ipc_db_activate_reminder(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1800 int ret = CALENDAR_ERROR_NONE;
1805 ret = _cal_ipc_unmarshal_char(indata, &pkgname);
1806 if (ret != CALENDAR_ERROR_NONE)
1808 ERR("unmarshal fail");
1814 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1815 ERR("db_insert_vcalendars fail.");
1819 ret = calendar_reminder_activate_receiver(pkgname);
1820 if (ret != CALENDAR_ERROR_NONE)
1822 ERR("calendar_reminder_activate_receiver() fail");
1829 *outdata = pims_ipc_data_create(0);
1832 ERR("pims_ipc_data_create fail");
1835 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1837 pims_ipc_data_destroy(*outdata);
1839 ERR("pims_ipc_data_put fail");
1845 ERR("outdata is NULL");
1850 void _cal_server_ipc_db_deactivate_reminder(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1852 int ret = CALENDAR_ERROR_NONE;
1857 ret = _cal_ipc_unmarshal_char(indata, &pkgname);
1858 if (ret != CALENDAR_ERROR_NONE)
1860 ERR("unmarshal fail");
1866 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1867 ERR("db_insert_vcalendars fail.");
1871 ret = calendar_reminder_deactivate_receiver(pkgname);
1872 if (ret != CALENDAR_ERROR_NONE)
1874 ERR("calendar_reminder_deactivate_pkgname() fail");
1881 *outdata = pims_ipc_data_create(0);
1884 ERR("pims_ipc_data_create fail");
1887 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1889 pims_ipc_data_destroy(*outdata);
1891 ERR("pims_ipc_data_put fail");
1897 ERR("outdata is NULL");
1902 void _cal_server_ipc_db_has_reminder(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1904 int ret = CALENDAR_ERROR_NONE;
1909 ret = _cal_ipc_unmarshal_char(indata, &pkgname);
1910 if (ret != CALENDAR_ERROR_NONE)
1912 ERR("unmarshal fail");
1918 ret = CALENDAR_ERROR_INVALID_PARAMETER;
1919 ERR("db_insert_vcalendars fail.");
1923 ret = calendar_reminder_has_receiver(pkgname);
1924 if (ret != CALENDAR_ERROR_NONE)
1926 ERR("calendar_reminder_deactivate_pkgname() fail");
1933 *outdata = pims_ipc_data_create(0);
1936 ERR("pims_ipc_data_create fail");
1939 if (pims_ipc_data_put(*outdata,(void*)&ret,sizeof(int)) != 0)
1941 pims_ipc_data_destroy(*outdata);
1943 ERR("pims_ipc_data_put fail");
1949 ERR("outdata is NULL");