-
-static int __ctsvc_ipc_unmarshal_attribute_filter(const pims_ipc_data_h ipc_data, const ctsvc_filter_type_e filter_type, ctsvc_attribute_filter_s *filter)
-{
- filter->filter_type = filter_type;
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_unmarshal_int(ipc_data, &filter->property_id)) {
- ERR("ctsvc_ipc_unmarshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_unmarshal_int(ipc_data, &filter->match)) {
- ERR("ctsvc_ipc_unmarshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- switch (filter->filter_type) {
- case CTSVC_FILTER_STR:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_unmarshal_string(ipc_data, &filter->value.s)) {
- ERR("ctsvc_ipc_unmarshal_string() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_INT:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_unmarshal_int(ipc_data, &filter->value.i)) {
- ERR("ctsvc_ipc_unmarshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_BOOL:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_unmarshal_bool(ipc_data, &filter->value.b)) {
- ERR("ctsvc_ipc_unmarshal_bool() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_DOUBLE:
- case CTSVC_FILTER_LLI:
- default:
- break;
- }
- return CONTACTS_ERROR_NONE;
-}
-
-static int __ctsvc_ipc_marshal_attribute_filter(const ctsvc_attribute_filter_s *filter, pims_ipc_data_h ipc_data)
-{
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int((filter->filter_type), ipc_data)) {
- ERR("ctsvc_ipc_marshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int((filter->property_id), ipc_data)) {
- ERR("ctsvc_ipc_marshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int((filter->match), ipc_data)) {
- ERR("ctsvc_ipc_marshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- switch (filter->filter_type) {
- case CTSVC_FILTER_STR:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_string((filter->value.s), ipc_data)) {
- ERR("ctsvc_ipc_marshal_string() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_INT:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_int((filter->value.i), ipc_data)) {
- ERR("ctsvc_ipc_marshal_int() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_BOOL:
- if (CONTACTS_ERROR_NONE != ctsvc_ipc_marshal_bool((filter->value.b), ipc_data)) {
- ERR("ctsvc_ipc_marshal_bool() Fail");
- return CONTACTS_ERROR_INVALID_PARAMETER;
- }
- break;
- case CTSVC_FILTER_DOUBLE:
- case CTSVC_FILTER_LLI:
- default:
- break;
- }
-
- return CONTACTS_ERROR_NONE;
-}