2 * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <privacy_manager.h>
19 #include <privacy_info.h>
20 #include <privacy_manager_client.h>
21 #include <privacy_manager_client_types.h>
22 #include <privacy_info_client.h>
23 #include <privacy_manager_types_private.h>
25 static int _privacy_info_convert_error(int error)
27 int ret = PRIV_MGR_ERROR_SUCCESS;
31 case PRIV_MGR_ERROR_SUCCESS:
32 ret = PRIVACY_MANAGER_ERROR_NONE;
34 case PRIV_MGR_ERROR_INVALID_PARAMETER:
35 ret = PRIVACY_MANAGER_ERROR_INVALID_PARAMETER;
37 case PRIV_MGR_ERROR_OUT_OF_MEMORY:
38 ret = PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY;
40 case PRIV_MGR_ERROR_IO_ERROR:
41 ret = PRIVACY_MANAGER_ERROR_IO_ERROR;
43 case PRIV_MGR_ERROR_NO_DATA:
44 ret = PRIVACY_MANAGER_ERROR_NO_DATA;
46 case PRIV_MGR_ERROR_DB_ERROR:
47 ret = PRIVACY_MANAGER_ERROR_DB_FAILED;
49 case PRIV_MGR_ERROR_IPC_ERROR:
50 ret = PRIVACY_MANAGER_ERROR_IPC_FAILED;
56 int privacy_info_destroy(privacy_info_h privacy_info)
59 if (privacy_info == NULL)
60 return PRIV_MGR_ERROR_INVALID_PARAMETER;
62 if (privacy_info->privacy_info_client)
64 retval = privacy_info_client_s_destroy(privacy_info->privacy_info_client);
65 if (retval != PRIV_MGR_ERROR_SUCCESS)
71 return PRIV_MGR_ERROR_SUCCESS;
74 int privacy_info_get_privacy_id(privacy_info_h privacy_info, char **package)
76 int retval = privacy_info_client_get_privacy_id(privacy_info->privacy_info_client, package);
78 return _privacy_info_convert_error(retval);
81 int privacy_info_get_privacy_display_name(struct privacy_info_s* privacy_info, char **name)
83 int retval = privacy_info_client_get_privacy_display_name(privacy_info->privacy_info_client, name);
85 return _privacy_info_convert_error(retval);
88 int privacy_info_get_privacy_description(struct privacy_info_s* privacy_info, char **description)
90 int retval = privacy_info_client_get_privacy_description(privacy_info->privacy_info_client, description);
92 return _privacy_info_convert_error(retval);
95 int privacy_info_is_enabled(struct privacy_info_s* privacy_info, bool *enable)
97 int retval = privacy_info_client_is_enabled(privacy_info->privacy_info_client, enable);
99 return _privacy_info_convert_error(retval);
102 int privacy_info_create(const char *privacy_id, privacy_info_h *privacy_info)
105 privacy_info_client_s* privacy_info_client = NULL;
107 retval = create_privacy_info_client_s(privacy_id, false, &privacy_info_client);
108 if (retval != PRIV_MGR_ERROR_SUCCESS)
109 return _privacy_info_convert_error(retval);
111 privacy_info_h privacy_info_temp = NULL;
112 privacy_info_temp = (struct privacy_info_s*) calloc(1, sizeof(struct privacy_info_s));
113 if (privacy_info_temp == NULL)
115 privacy_info_client_s_destroy(privacy_info_client);
116 return PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY;
119 privacy_info_temp->privacy_info_client = privacy_info_client;
121 *privacy_info = privacy_info_temp;
123 return PRIVACY_MANAGER_ERROR_NONE;
126 int privacy_info_clone(privacy_info_h *clone, privacy_info_h privacy_info)
129 if (clone == NULL || privacy_info == NULL)
130 return PRIVACY_MANAGER_ERROR_INVALID_PARAMETER;
132 retval = privacy_info_create(privacy_info->privacy_info_client->privacy_id, clone);