4 * Copyright (c) 2000 - 2012 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.
23 #ifdef ENABLE_LOG_FEATURE
24 #include "contacts_phone_log_internal.h"
25 #endif /* ENABLE_LOG_FEATURE */
27 #include "ctsvc_server_service.h"
28 #include "ctsvc_db_init.h"
30 #include "ctsvc_server_activity.h"
31 #include "ctsvc_server_person.h"
32 #include "ctsvc_server_group.h"
33 #include "ctsvc_server_phonelog.h"
34 #include "ctsvc_server_setting.h"
36 #include "ctsvc_db_access_control.h"
38 #include "ctsvc_ipc_marshal.h"
39 #include "ctsvc_internal.h"
40 #include "ctsvc_ipc_server.h"
41 #include "ctsvc_db_utils.h"
42 #include "ctsvc_handle.h"
44 void ctsvc_ipc_activity_delete_by_contact_id(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
46 int ret = CONTACTS_ERROR_NONE;
48 contacts_h contact = NULL;
51 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
52 if (CONTACTS_ERROR_NONE != ret) {
53 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
56 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
57 if (ret != CONTACTS_ERROR_NONE) {
58 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
63 CTS_ERR("ctsvc_ipc_server_db_insert_record fail");
67 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
68 ret = CONTACTS_ERROR_PERMISSION_DENIED;
71 ret = ctsvc_activity_delete_by_contact_id(contact_id);
77 *outdata = pims_ipc_data_create(0);
78 if (NULL == *outdata) {
79 CTS_ERR("pims_ipc_data_create fail");
82 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
83 pims_ipc_data_destroy(*outdata);
85 CTS_ERR("pims_ipc_data_put fail");
89 if (ret == CONTACTS_ERROR_NONE) {
90 int transaction_ver = ctsvc_get_transaction_ver();
91 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
92 pims_ipc_data_destroy(*outdata);
94 CTS_ERR("ctsvc_ipc_marshal_int fail");
100 CTS_ERR("outdata is NULL");
103 ctsvc_handle_destroy(contact);
107 void ctsvc_ipc_activity_delete_by_account_id(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
109 int ret = CONTACTS_ERROR_NONE;
111 contacts_h contact = NULL;
114 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
115 if (CONTACTS_ERROR_NONE != ret) {
116 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
119 ret = ctsvc_ipc_unmarshal_int(indata, &account_id);
120 if (ret != CONTACTS_ERROR_NONE) {
121 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
126 CTS_ERR("ctsvc_ipc_activity_delete_by_account_id fail");
130 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
131 ret = CONTACTS_ERROR_PERMISSION_DENIED;
134 ret = ctsvc_activity_delete_by_account_id(account_id);
139 *outdata = pims_ipc_data_create(0);
140 if (NULL == *outdata) {
141 CTS_ERR("pims_ipc_data_create fail");
144 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
145 pims_ipc_data_destroy(*outdata);
147 CTS_ERR("pims_ipc_data_put fail");
151 if (ret == CONTACTS_ERROR_NONE) {
152 int transaction_ver = ctsvc_get_transaction_ver();
153 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
154 pims_ipc_data_destroy(*outdata);
156 CTS_ERR("ctsvc_ipc_marshal_int fail");
162 CTS_ERR("outdata is NULL");
165 ctsvc_handle_destroy(contact);
169 void ctsvc_ipc_group_add_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
171 int ret = CONTACTS_ERROR_NONE;
174 contacts_h contact = NULL;
177 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
178 if (CONTACTS_ERROR_NONE != ret) {
179 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
182 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
183 if (ret != CONTACTS_ERROR_NONE) {
184 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
187 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
188 if (ret != CONTACTS_ERROR_NONE) {
189 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
194 CTS_ERR("ctsvc_ipc_group_add_contact fail");
198 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
199 ret = CONTACTS_ERROR_PERMISSION_DENIED;
203 ret = ctsvc_group_add_contact(group_id, contact_id);
208 *outdata = pims_ipc_data_create(0);
209 if (NULL == *outdata) {
210 CTS_ERR("pims_ipc_data_create fail");
213 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
214 pims_ipc_data_destroy(*outdata);
216 CTS_ERR("pims_ipc_data_put fail");
220 if (ret == CONTACTS_ERROR_NONE) {
221 int transaction_ver = ctsvc_get_transaction_ver();
222 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
223 pims_ipc_data_destroy(*outdata);
225 CTS_ERR("ctsvc_ipc_marshal_int fail");
231 CTS_ERR("outdata is NULL");
234 ctsvc_handle_destroy(contact);
238 void ctsvc_ipc_group_remove_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
240 int ret = CONTACTS_ERROR_NONE;
243 contacts_h contact = NULL;
246 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
247 if (CONTACTS_ERROR_NONE != ret) {
248 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
251 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
252 if (ret != CONTACTS_ERROR_NONE) {
253 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
256 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
257 if (ret != CONTACTS_ERROR_NONE) {
258 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
263 CTS_ERR("ctsvc_ipc_group_remove_contact fail");
267 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
268 ret = CONTACTS_ERROR_PERMISSION_DENIED;
273 ret = ctsvc_group_remove_contact(group_id, contact_id);
278 *outdata = pims_ipc_data_create(0);
279 if (NULL == *outdata) {
280 CTS_ERR("pims_ipc_data_create fail");
283 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
284 pims_ipc_data_destroy(*outdata);
286 CTS_ERR("pims_ipc_data_put fail");
289 if (ret == CONTACTS_ERROR_NONE) {
290 int transaction_ver = ctsvc_get_transaction_ver();
291 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
292 pims_ipc_data_destroy(*outdata);
294 CTS_ERR("ctsvc_ipc_marshal_int fail");
301 CTS_ERR("outdata is NULL");
304 ctsvc_handle_destroy(contact);
308 void ctsvc_ipc_group_set_group_order(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
310 int ret = CONTACTS_ERROR_NONE;
312 int previous_group_id;
315 contacts_h contact = NULL;
317 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
318 if (CONTACTS_ERROR_NONE != ret) {
319 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
322 ret = ctsvc_ipc_unmarshal_int(indata, &group_id);
323 if (ret != CONTACTS_ERROR_NONE) {
324 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
327 ret = ctsvc_ipc_unmarshal_int(indata, &previous_group_id);
328 if (ret != CONTACTS_ERROR_NONE) {
329 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
332 ret = ctsvc_ipc_unmarshal_int(indata, &next_group_id);
333 if (ret != CONTACTS_ERROR_NONE) {
334 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
339 CTS_ERR("ctsvc_ipc_group_link_group fail");
343 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
344 ret = CONTACTS_ERROR_PERMISSION_DENIED;
348 ret = ctsvc_group_set_group_order(group_id, previous_group_id, next_group_id);
353 *outdata = pims_ipc_data_create(0);
354 if (NULL == *outdata) {
355 CTS_ERR("pims_ipc_data_create fail");
358 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
359 pims_ipc_data_destroy(*outdata);
361 CTS_ERR("pims_ipc_data_put fail");
364 if (ret == CONTACTS_ERROR_NONE) {
365 int transaction_ver = ctsvc_get_transaction_ver();
366 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
367 pims_ipc_data_destroy(*outdata);
369 CTS_ERR("ctsvc_ipc_marshal_int fail");
375 CTS_ERR("outdata is NULL");
378 ctsvc_handle_destroy(contact);
382 void ctsvc_ipc_person_link_person(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
384 int ret = CONTACTS_ERROR_NONE;
385 int base_person_id = 0;
388 contacts_h contact = NULL;
390 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
391 if (CONTACTS_ERROR_NONE != ret) {
392 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
395 ret = ctsvc_ipc_unmarshal_int(indata, &base_person_id);
396 if (ret != CONTACTS_ERROR_NONE) {
397 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
400 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
401 if (ret != CONTACTS_ERROR_NONE) {
402 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
407 CTS_ERR("ctsvc_ipc_person_link_person fail");
411 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
412 ret = CONTACTS_ERROR_PERMISSION_DENIED;
416 ret = ctsvc_person_link_person(base_person_id, person_id);
421 *outdata = pims_ipc_data_create(0);
422 if (NULL == *outdata) {
423 CTS_ERR("pims_ipc_data_create fail");
426 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
427 pims_ipc_data_destroy(*outdata);
429 CTS_ERR("pims_ipc_data_put fail");
432 if (ret == CONTACTS_ERROR_NONE) {
433 int transaction_ver = ctsvc_get_transaction_ver();
434 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
435 pims_ipc_data_destroy(*outdata);
437 CTS_ERR("ctsvc_ipc_marshal_int fail");
443 CTS_ERR("outdata is NULL");
446 ctsvc_handle_destroy(contact);
449 void ctsvc_ipc_person_unlink_contact(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
451 int ret = CONTACTS_ERROR_NONE;
455 contacts_h contact = NULL;
457 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
458 if (CONTACTS_ERROR_NONE != ret) {
459 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
462 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
463 if (ret != CONTACTS_ERROR_NONE) {
464 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
467 ret = ctsvc_ipc_unmarshal_int(indata, &contact_id);
468 if (ret != CONTACTS_ERROR_NONE) {
469 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
474 CTS_ERR("ctsvc_ipc_person_link_person fail");
478 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
479 ret = CONTACTS_ERROR_PERMISSION_DENIED;
483 int unlinked_person_id;
484 ret = ctsvc_person_unlink_contact(person_id, contact_id, &unlinked_person_id);
489 *outdata = pims_ipc_data_create(0);
490 if (NULL == *outdata) {
491 CTS_ERR("pims_ipc_data_create fail");
494 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
495 pims_ipc_data_destroy(*outdata);
497 CTS_ERR("pims_ipc_data_put fail");
500 if (ret == CONTACTS_ERROR_NONE) {
501 int transaction_ver = ctsvc_get_transaction_ver();
502 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
503 pims_ipc_data_destroy(*outdata);
505 CTS_ERR("ctsvc_ipc_marshal_int fail");
509 if (pims_ipc_data_put(*outdata, (void*)&unlinked_person_id, sizeof(int)) != 0) {
510 pims_ipc_data_destroy(*outdata);
512 CTS_ERR("pims_ipc_data_put fail");
518 CTS_ERR("outdata is NULL");
521 ctsvc_handle_destroy(contact);
524 void ctsvc_ipc_person_reset_usage(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
526 int ret = CONTACTS_ERROR_NONE;
528 contacts_usage_type_e type;
529 contacts_h contact = NULL;
532 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
533 if (CONTACTS_ERROR_NONE != ret) {
534 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
537 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
538 if (ret != CONTACTS_ERROR_NONE) {
539 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
543 ret = ctsvc_ipc_unmarshal_int(indata, &temp);
545 if (ret != CONTACTS_ERROR_NONE) {
546 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
551 CTS_ERR("ctsvc_ipc_person_link_person fail");
555 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
556 ret = CONTACTS_ERROR_PERMISSION_DENIED;
560 ret = ctsvc_person_reset_usage(person_id, type);
565 *outdata = pims_ipc_data_create(0);
566 if (NULL == *outdata) {
567 CTS_ERR("pims_ipc_data_create fail");
570 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
571 pims_ipc_data_destroy(*outdata);
573 CTS_ERR("pims_ipc_data_put fail");
576 if (ret == CONTACTS_ERROR_NONE) {
577 int transaction_ver = ctsvc_get_transaction_ver();
578 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
579 pims_ipc_data_destroy(*outdata);
581 CTS_ERR("ctsvc_ipc_marshal_int fail");
587 CTS_ERR("outdata is NULL");
590 ctsvc_handle_destroy(contact);
593 void ctsvc_ipc_person_set_favorite_order(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
595 int ret = CONTACTS_ERROR_NONE;
597 int previous_person_id;
599 contacts_h contact = NULL;
602 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
603 if (CONTACTS_ERROR_NONE != ret) {
604 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
607 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
608 if (ret != CONTACTS_ERROR_NONE) {
609 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
612 ret = ctsvc_ipc_unmarshal_int(indata, &previous_person_id);
613 if (ret != CONTACTS_ERROR_NONE) {
614 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
617 ret = ctsvc_ipc_unmarshal_int(indata, &next_person_id);
618 if (ret != CONTACTS_ERROR_NONE) {
619 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
624 CTS_ERR("ctsvc_ipc_person_link_person fail");
628 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
629 ret = CONTACTS_ERROR_PERMISSION_DENIED;
633 ret = ctsvc_person_set_favorite_order(person_id, previous_person_id, next_person_id);
638 *outdata = pims_ipc_data_create(0);
639 if (NULL == *outdata) {
640 CTS_ERR("pims_ipc_data_create fail");
643 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
644 pims_ipc_data_destroy(*outdata);
646 CTS_ERR("pims_ipc_data_put fail");
649 if (ret == CONTACTS_ERROR_NONE) {
650 int transaction_ver = ctsvc_get_transaction_ver();
651 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
652 pims_ipc_data_destroy(*outdata);
654 CTS_ERR("ctsvc_ipc_marshal_int fail");
660 CTS_ERR("outdata is NULL");
663 ctsvc_handle_destroy(contact);
667 void ctsvc_ipc_person_set_default_property(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
669 int ret = CONTACTS_ERROR_NONE;
672 contacts_person_property_e property;
673 contacts_h contact = NULL;
676 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
677 if (CONTACTS_ERROR_NONE != ret) {
678 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
681 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
682 if (ret != CONTACTS_ERROR_NONE) {
683 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
686 ret = ctsvc_ipc_unmarshal_unsigned_int(indata, &property);
687 if (ret != CONTACTS_ERROR_NONE) {
688 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
691 ret = ctsvc_ipc_unmarshal_int(indata, &id);
692 if (ret != CONTACTS_ERROR_NONE) {
693 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
698 CTS_ERR("ctsvc_ipc_person_set_default_property fail");
702 ret = ctsvc_person_set_default_property(property, person_id, id);
707 *outdata = pims_ipc_data_create(0);
708 if (NULL == *outdata) {
709 CTS_ERR("pims_ipc_data_create fail");
712 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
713 pims_ipc_data_destroy(*outdata);
715 CTS_ERR("pims_ipc_data_put fail");
718 if (ret == CONTACTS_ERROR_NONE) {
719 int transaction_ver = ctsvc_get_transaction_ver();
720 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
721 pims_ipc_data_destroy(*outdata);
723 CTS_ERR("ctsvc_ipc_marshal_int fail");
729 CTS_ERR("outdata is NULL");
732 ctsvc_handle_destroy(contact);
736 void ctsvc_ipc_person_get_default_property(pims_ipc_h ipc, pims_ipc_data_h indata,
737 pims_ipc_data_h *outdata, void *userdata)
739 int ret = CONTACTS_ERROR_NONE;
742 contacts_person_property_e op;
743 contacts_h contact = NULL;
745 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
746 if (CONTACTS_ERROR_NONE != ret) {
747 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
750 ret = ctsvc_ipc_unmarshal_int(indata, &person_id);
751 if (ret != CONTACTS_ERROR_NONE) {
752 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
755 ret = ctsvc_ipc_unmarshal_unsigned_int(indata, &op);
756 if (ret != CONTACTS_ERROR_NONE) {
757 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
762 CTS_ERR("ctsvc_ipc_person_get_default_property fail");
766 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
767 ret = CONTACTS_ERROR_PERMISSION_DENIED;
771 ret = ctsvc_person_get_default_property(op, person_id, &id);
776 *outdata = pims_ipc_data_create(0);
777 if (NULL == *outdata) {
778 CTS_ERR("pims_ipc_data_create fail");
781 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
782 pims_ipc_data_destroy(*outdata);
784 CTS_ERR("pims_ipc_data_put fail (return value)");
787 if (pims_ipc_data_put(*outdata, (void*)&id, sizeof(int)) != 0) {
788 pims_ipc_data_destroy(*outdata);
790 CTS_ERR("pims_ipc_data_put fail (id)");
795 CTS_ERR("outdata is NULL");
798 ctsvc_handle_destroy(contact);
802 #ifdef ENABLE_LOG_FEATURE
803 void ctsvc_ipc_phone_log_reset_statistics(pims_ipc_h ipc, pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
806 contacts_h contact = NULL;
809 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
810 if (CONTACTS_ERROR_NONE != ret) {
811 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
816 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_PHONELOG_WRITE)) {
817 ret = CONTACTS_ERROR_PERMISSION_DENIED;
821 ret = ctsvc_phone_log_reset_statistics();
825 *outdata = pims_ipc_data_create(0);
826 if (NULL == *outdata) {
827 CTS_ERR("pims_ipc_data_create fail");
830 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
831 pims_ipc_data_destroy(*outdata);
833 CTS_ERR("pims_ipc_data_put fail");
836 if (ret == CONTACTS_ERROR_NONE) {
837 int transaction_ver = ctsvc_get_transaction_ver();
838 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
839 pims_ipc_data_destroy(*outdata);
841 CTS_ERR("ctsvc_ipc_marshal_int fail");
847 CTS_ERR("outdata is NULL");
850 ctsvc_handle_destroy(contact);
854 void ctsvc_ipc_phone_log_delete(pims_ipc_h ipc, pims_ipc_data_h indata,
855 pims_ipc_data_h *outdata, void *userdata)
857 int ret= CONTACTS_ERROR_NONE;
860 contacts_phone_log_delete_e op;
861 contacts_h contact = NULL;
864 ret = ctsvc_ipc_unmarshal_handle(indata, &contact);
865 if (CONTACTS_ERROR_NONE != ret) {
866 CTS_ERR("ctsvc_ipc_unmarshal_handle Fail(%d)", ret);
869 ret = ctsvc_ipc_unmarshal_int(indata, (int*)&op);
870 if (ret != CONTACTS_ERROR_NONE) {
871 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
873 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_PHONELOG_WRITE)) {
874 ret = CONTACTS_ERROR_PERMISSION_DENIED;
881 case CONTACTS_PHONE_LOG_DELETE_BY_ADDRESS:
882 ret = ctsvc_ipc_unmarshal_string(indata, &number);
883 if (ret != CONTACTS_ERROR_NONE) {
884 CTS_ERR("ctsvc_ipc_unmarshal_string fail");
887 ret = ctsvc_phone_log_delete(op, number);
889 case CONTACTS_PHONE_LOG_DELETE_BY_MESSAGE_EXTRA_DATA1:
890 case CONTACTS_PHONE_LOG_DELETE_BY_EMAIL_EXTRA_DATA1:
891 ret = ctsvc_ipc_unmarshal_int(indata, &extra_data1);
892 if (ret != CONTACTS_ERROR_NONE) {
893 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
896 ret = ctsvc_phone_log_delete(op, extra_data1);
899 CTS_ERR("Invalid parameter : the operation is not proper (op : %d)", op);
900 ret = CONTACTS_ERROR_INVALID_PARAMETER;
907 *outdata = pims_ipc_data_create(0);
908 if (NULL == *outdata) {
909 CTS_ERR("pims_ipc_data_create fail");
912 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
913 pims_ipc_data_destroy(*outdata);
915 CTS_ERR("pims_ipc_data_put fail");
918 if (ret == CONTACTS_ERROR_NONE) {
919 int transaction_ver = ctsvc_get_transaction_ver();
920 if (ctsvc_ipc_marshal_int(transaction_ver, *outdata) != CONTACTS_ERROR_NONE) {
921 pims_ipc_data_destroy(*outdata);
923 CTS_ERR("ctsvc_ipc_marshal_int fail");
929 ctsvc_handle_destroy(contact);
934 #endif /* ENABLE_LOG_FEATURE */
936 void ctsvc_ipc_setting_get_name_display_order(pims_ipc_h ipc, pims_ipc_data_h indata,
937 pims_ipc_data_h *outdata, void *userdata)
939 int ret = CONTACTS_ERROR_NONE;
940 contacts_name_display_order_e order;
942 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
943 ret = CONTACTS_ERROR_PERMISSION_DENIED;
947 ret = ctsvc_setting_get_name_display_order(&order);
951 *outdata = pims_ipc_data_create(0);
952 if (NULL == *outdata) {
953 CTS_ERR("pims_ipc_data_create fail");
956 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
957 pims_ipc_data_destroy(*outdata);
959 CTS_ERR("pims_ipc_data_put fail (return value)");
962 if (pims_ipc_data_put(*outdata, (void*)&order, sizeof(int)) != 0) {
963 pims_ipc_data_destroy(*outdata);
965 CTS_ERR("pims_ipc_data_put fail (id)");
970 CTS_ERR("outdata is NULL");
976 void ctsvc_ipc_setting_get_name_sorting_order(pims_ipc_h ipc, pims_ipc_data_h indata,
977 pims_ipc_data_h *outdata, void *userdata)
979 int ret = CONTACTS_ERROR_NONE;
980 contacts_name_sorting_order_e order;
982 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_READ)) {
983 ret = CONTACTS_ERROR_PERMISSION_DENIED;
987 ret = ctsvc_setting_get_name_sorting_order(&order);
991 *outdata = pims_ipc_data_create(0);
992 if (NULL == *outdata) {
993 CTS_ERR("pims_ipc_data_create fail");
996 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
997 pims_ipc_data_destroy(*outdata);
999 CTS_ERR("pims_ipc_data_put fail (return value)");
1002 if (pims_ipc_data_put(*outdata, (void*)&order, sizeof(int)) != 0) {
1003 pims_ipc_data_destroy(*outdata);
1005 CTS_ERR("pims_ipc_data_put fail (id)");
1010 CTS_ERR("outdata is NULL");
1016 void ctsvc_ipc_setting_set_name_display_order(pims_ipc_h ipc,
1017 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1019 int ret = CONTACTS_ERROR_NONE;
1023 ret = ctsvc_ipc_unmarshal_int(indata, &order);
1024 if (ret != CONTACTS_ERROR_NONE) {
1025 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
1030 CTS_ERR("ctsvc_ipc_person_set_default_property fail");
1034 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
1035 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1039 ret = ctsvc_setting_set_name_display_order((contacts_name_display_order_e)order);
1043 *outdata = pims_ipc_data_create(0);
1044 if (NULL == *outdata) {
1045 CTS_ERR("pims_ipc_data_create fail");
1048 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
1049 pims_ipc_data_destroy(*outdata);
1051 CTS_ERR("pims_ipc_data_put fail");
1056 CTS_ERR("outdata is NULL");
1062 void ctsvc_ipc_setting_set_name_sorting_order(pims_ipc_h ipc,
1063 pims_ipc_data_h indata, pims_ipc_data_h *outdata, void *userdata)
1065 int ret = CONTACTS_ERROR_NONE;
1069 ret = ctsvc_ipc_unmarshal_int(indata, &order);
1070 if (ret != CONTACTS_ERROR_NONE) {
1071 CTS_ERR("ctsvc_ipc_unmarshal_int fail");
1076 CTS_ERR("ctsvc_ipc_person_set_default_property fail");
1080 if (!ctsvc_have_permission(ipc, CTSVC_PERMISSION_CONTACT_WRITE)) {
1081 ret = CONTACTS_ERROR_PERMISSION_DENIED;
1085 ret = ctsvc_setting_set_name_sorting_order((contacts_name_sorting_order_e)order);
1089 *outdata = pims_ipc_data_create(0);
1090 if (NULL == *outdata) {
1091 CTS_ERR("pims_ipc_data_create fail");
1094 if (pims_ipc_data_put(*outdata, (void*)&ret, sizeof(int)) != 0) {
1095 pims_ipc_data_destroy(*outdata);
1097 CTS_ERR("pims_ipc_data_put fail");
1102 CTS_ERR("outdata is NULL");