*/
EXPORT_API int privacy_info_is_enabled(privacy_info_h privacy_info, bool *enabled);
+/**\r
+ * @brief Creates and returns a copy of the given privacy info handle.\r
+ *\r
+ * @remarks A newly created service should be destroyed by calling privacy_info_destroy() if it is no longer needed.\r
+ *\r
+ * @param [out] clone If successful, a newly created privacy info handle will be returned.\r
+ * @param [in] privacy_info The privacy info handle\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #PRIVACY_MANAGER_ERROR_NONE Successful\r
+ * @retval #PRIVACY_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY Out of memory\r
+ * @see privacy_info_destroy()\r
+ */\r
+EXPORT_API int privacy_info_clone(privacy_info_h *clone, privacy_info_h privacy_info);\r
#ifdef __cplusplus
}
*/
typedef bool (*privacy_manager_privacy_info_cb) (privacy_info_h privacy_info, void* user_data);
+/**
+ * @brief Called to get all privacy info once.
+ * @remarks @a privacy_info will be automatically destroyed when the callback function returns. (Do not release @a privacy_info.)
+ * @param[in] privacy_info_h privacy info
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop.
+ * @pre privacy_manager_foreach_all_privacy() will invoke this callback.
+ * @see privacy_manager_foreach_all_privacy()
+ */
+typedef bool (*privacy_manager_all_privacy_info_cb) (privacy_info_h privacy_info, void* user_data);
+
+/**
+ * @brief Called to get a package id and privacy enabled info once for each privacy ID.
+ * @remarks @a package_id will be automatically destroyed when the callback function returns. (Do not release @a package_id.)
+ * @param[in] package_id The package id which uses the specific privacy information.
+ * @param[in] is_enabled A Boolean value indicating whether the privacy setting of the package is enabled
+ * @param[in] user_data The user data passed from the foreach function
+ * @return @c true to continue with the next iteration of the loop, \n @c false to break out of the loop.
+ * @pre privacy_manager_foreach_package_list_by_privacy() will invoke this callback.
+ * @see privacy_manager_foreach_package_list_by_privacy()
+ */
+typedef bool (*privacy_manager_packages_by_privacy_cb) (const char *package_id, bool is_enabled, void* user_data);
+
/**
* @brief Retrieves privacy package list.
* @param [in] callback The callback function to invoke
*/
EXPORT_API int privacy_manager_set_package_privacy(const char *package_id, const char *privacy_id, bool enable);
+/**
+ * @brief Retrieves all privacy list.
+ * @param [in] callback The callback function to invoke
+ * @param [in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVACY_MANAGER_ERROR_NONE Successful
+ * @retval #PRIVACY_MANAGER_ERROR_IPC_FAILED IPC failed
+ * @retval #PRIVACY_MANAGER_ERROR_DB_FAILED DB operation failed
+ * @post This function invokes privacy_manager_all_privacy_info_cb() repeatedly for each application context.
+ * @see privacy_manager_all_privacy_info_cb()
+ */
+EXPORT_API int privacy_manager_foreach_all_privacy(privacy_manager_all_privacy_info_cb callback, void* user_data);
+
+/**
+ * @brief Retrieves package list by the privacy id.
+ * @param [in] callback The callback function to invoke
+ * @param [in] user_data The user data to be passed to the callback function
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #PRIVACY_MANAGER_ERROR_NONE Successful
+ * @retval #PRIVACY_MANAGER_ERROR_NO_DATA no package founded.
+ * @retval #PRIVACY_MANAGER_ERROR_IPC_FAILED IPC failed
+ * @retval #PRIVACY_MANAGER_ERROR_DB_FAILED DB operation failed
+ * @post This function invokes privacy_manager_all_privacy_info_cb() repeatedly for each application context.
+ * @see privacy_manager_all_privacy_info_cb()
+ */
+EXPORT_API int privacy_manager_foreach_package_list_by_privacy(const char *privacy_id, privacy_manager_packages_by_privacy_cb callback, void* user_data);
+
+
#ifdef __cplusplus
}
\r
static int _privacy_info_convert_error(int error)\r
{\r
+ int ret = PRIV_MGR_ERROR_SUCCESS;\r
\r
- return PRIVACY_MANAGER_ERROR_NONE;\r
+ switch (error) \r
+ {\r
+ case PRIV_MGR_ERROR_SUCCESS:\r
+ ret = PRIVACY_MANAGER_ERROR_NONE;
+ break;
+ case PRIV_MGR_ERROR_INVALID_PARAMETER:
+ ret = PRIVACY_MANAGER_ERROR_INVALID_PARAMETER;
+ break;
+ case PRIV_MGR_ERROR_OUT_OF_MEMORY:
+ ret = PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY;
+ break;
+ case PRIV_MGR_ERROR_IO_ERROR:
+ ret = PRIVACY_MANAGER_ERROR_IO_ERROR;
+ break;
+ case PRIV_MGR_ERROR_NO_DATA:
+ ret = PRIVACY_MANAGER_ERROR_NO_DATA;
+ break;
+ case PRIV_MGR_ERROR_DB_ERROR:
+ ret = PRIVACY_MANAGER_ERROR_DB_FAILED;
+ break;
+ case PRIV_MGR_ERROR_IPC_ERROR:\r
+ ret = PRIVACY_MANAGER_ERROR_IPC_FAILED;\r
+ break;\r
+ }\r
+ return ret;\r
}\r
\r
int privacy_info_destroy(privacy_info_h privacy_info)\r
\r
return _privacy_info_convert_error(retval);\r
}\r
+\r
+int privacy_info_create(const char *privacy_id, privacy_info_h *privacy_info)\r
+{\r
+ int retval;\r
+ privacy_info_client_s* privacy_info_client = NULL;\r
+ \r
+ retval = create_privacy_info_client_s(privacy_id, false, &privacy_info_client);\r
+ if (retval != PRIV_MGR_ERROR_SUCCESS)\r
+ return _privacy_info_convert_error(retval);\r
+\r
+ privacy_info_h privacy_info_temp = NULL;\r
+ privacy_info_temp = (struct privacy_info_s*) calloc(1, sizeof(struct privacy_info_s));\r
+ if (privacy_info_temp == NULL)\r
+ return PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY;\r
+ \r
+ privacy_info_temp->privacy_info_client = privacy_info_client;\r
+\r
+ *privacy_info = privacy_info_temp;\r
+\r
+ return PRIVACY_MANAGER_ERROR_NONE;\r
+}\r
+\r
+int privacy_info_clone(privacy_info_h *clone, privacy_info_h privacy_info)\r
+{\r
+ int retval;\r
+ if (clone == NULL || privacy_info == NULL)\r
+ return PRIVACY_MANAGER_ERROR_INVALID_PARAMETER;\r
+ \r
+ retval = privacy_info_create(privacy_info->privacy_info_client->privacy_id, clone);\r
+\r
+ return retval;\r
+}
\ No newline at end of file
#include <privacy_info_client.h>\r
#include <privacy_manager_client.h>\r
#include <privacy_manager_types_private.h>\r
+#include <dlog.h>\r
\r
\r
static int _privacy_manager_convert_error(int error)\r
{\r
- return PRIVACY_MANAGER_ERROR_NONE;\r
+ int ret = PRIV_MGR_ERROR_SUCCESS;\r
+\r
+ LOGD("before error : %d", error);\r
+\r
+ switch (error) \r
+ {\r
+ case PRIV_MGR_ERROR_SUCCESS:\r
+ ret = PRIVACY_MANAGER_ERROR_NONE;
+ break;
+ case PRIV_MGR_ERROR_INVALID_PARAMETER:
+ ret = PRIVACY_MANAGER_ERROR_INVALID_PARAMETER;
+ break;
+ case PRIV_MGR_ERROR_OUT_OF_MEMORY:
+ ret = PRIVACY_MANAGER_ERROR_OUT_OF_MEMORY;
+ break;
+ case PRIV_MGR_ERROR_IO_ERROR:
+ ret = PRIVACY_MANAGER_ERROR_IO_ERROR;
+ break;
+ case PRIV_MGR_ERROR_NO_DATA:
+ ret = PRIVACY_MANAGER_ERROR_NO_DATA;
+ break;
+ case PRIV_MGR_ERROR_DB_ERROR:
+ ret = PRIVACY_MANAGER_ERROR_DB_FAILED;
+ break;
+ case PRIV_MGR_ERROR_IPC_ERROR:\r
+ ret = PRIVACY_MANAGER_ERROR_IPC_FAILED;\r
+ break;\r
+ }\r
+ LOGD("after error : %d", ret);\r
+ return ret;\r
}\r
\r
typedef struct _foreach_privacy_package_context_\r
void *user_data;\r
} foreach_privacy_info_context_s;\r
\r
+typedef struct _foreach_all_privacy_context_\r
+{\r
+ privacy_manager_all_privacy_info_cb callback;\r
+ void *user_data;\r
+} foreach_all_privacy_context_s;\r
+\r
+typedef struct _foreach_package_by_privacy_context_\r
+{\r
+ privacy_manager_packages_by_privacy_cb callback;\r
+ void *user_data;\r
+} foreach_package_by_privacy_context_s;\r
+\r
//static int _create_privacy_info(const char* package_id, bool enabled, privacy_info_h *privacy_info)\r
//{\r
// privacy_info_h temp = (privacy_info_h) calloc(1, sizeof(privacy_info_h));\r
return ret;\r
}\r
\r
+bool __privacy_manager_client_all_privacy_info_cb(privacy_info_client_s* privacy_info_client, void* user_data)\r
+{\r
+ foreach_all_privacy_context_s* context = (foreach_all_privacy_context_s*) user_data;\r
+\r
+ struct privacy_info_s* privacy_info = NULL;\r
+\r
+ bool ret = false;\r
+\r
+ privacy_info = (struct privacy_info_s*) calloc(1, sizeof(struct privacy_info_s));\r
+\r
+ privacy_info->privacy_info_client = privacy_info_client;\r
+\r
+ ret = context->callback(privacy_info, context->user_data);\r
+\r
+ free(privacy_info);\r
+\r
+ return ret;\r
+}\r
+\r
+bool __privacy_manager_client_packages_by_privacy_cb(const char *package_id, bool is_enabled, void* user_data)\r
+{\r
+ foreach_package_by_privacy_context_s* context = (foreach_package_by_privacy_context_s*) user_data;\r
+\r
+ bool ret = false;\r
+\r
+ ret = context->callback(package_id, is_enabled, context->user_data);\r
+\r
+ return ret;\r
+}\r
+\r
int privacy_manager_foreach_privacy_packages(privacy_manager_privacy_packages_cb callback, void *user_data)\r
{\r
int retval;\r
\r
return _privacy_manager_convert_error(retval);\r
}\r
+\r
int privacy_manager_set_package_privacy(const char *package_id, const char *privacy_id, bool enable)\r
{\r
int retval = privacy_manager_client_set_package_privacy(package_id, privacy_id, enable);\r
\r
return _privacy_manager_convert_error(retval);\r
}\r
+\r
+int privacy_manager_foreach_all_privacy(privacy_manager_all_privacy_info_cb callback, void* user_data)\r
+{\r
+ int retval;\r
+\r
+ foreach_all_privacy_context_s* context = NULL;\r
+ \r
+ context = (foreach_all_privacy_context_s*) calloc(1, sizeof(foreach_all_privacy_context_s));\r
+ if (context == NULL)\r
+ return PRIV_MGR_ERROR_OUT_OF_MEMORY;\r
+\r
+ context->callback = callback;\r
+ context->user_data = user_data;\r
+\r
+ retval = privacy_manager_client_foreach_all_privacy(__privacy_manager_client_all_privacy_info_cb, context);\r
+\r
+ return _privacy_manager_convert_error(retval);\r
+}\r
+\r
+int privacy_manager_foreach_package_list_by_privacy(const char *privacy_id, privacy_manager_client_packages_by_privacy_cb callback, void* user_data)\r
+{\r
+ int retval;\r
+\r
+ foreach_package_by_privacy_context_s* context = NULL;\r
+ \r
+ context = (foreach_package_by_privacy_context_s*) calloc(1, sizeof(foreach_package_by_privacy_context_s));\r
+ if (context == NULL)\r
+ return PRIV_MGR_ERROR_OUT_OF_MEMORY;\r
+\r
+ context->callback = callback;\r
+ context->user_data = user_data;\r
+\r
+ retval = privacy_manager_client_foreach_package_list_by_privacy(privacy_id, __privacy_manager_client_packages_by_privacy_cb, context);\r
+\r
+ return _privacy_manager_convert_error(retval);\r
+}
\ No newline at end of file
int isUserPrompted(const std::string pkgId, bool& isPrompted);\r
\r
int setUserPrompted(const std::string pkgId, bool prompted);\r
+\r
+ int getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list);\r
};\r
\r
#endif // _PRIVACY_MANAGER_H_
\ No newline at end of file
\r
typedef bool (*privacy_manager_client_privacy_packages_cb) (const char *package_id, void* user_data);\r
typedef bool (*privacy_manager_client_privacy_info_cb) (privacy_info_client_s* privacy_info, void* user_data);\r
+typedef bool (*privacy_manager_client_all_privacy_info_cb) (privacy_info_client_s* privacy_info, void* user_data);\r
+typedef bool (*privacy_manager_client_packages_by_privacy_cb) (const char *package_id, bool is_enabled, void* user_data);\r
\r
EXTERN_API int privacy_manager_client_install_privacy(const char *package_id, const char** privacy_list);\r
EXTERN_API int privacy_manager_client_uninstall_privacy(const char *package_id);\r
EXTERN_API int privacy_manager_client_foreach_get_privacy_info(const char *package_id, privacy_manager_client_privacy_info_cb callback, void* user_data);\r
EXTERN_API int privacy_manager_client_set_package_privacy(const char *package_id, const char *privacy_id, bool enable);\r
\r
-EXTERN_API int privacy_manager_client_check_user_consented(const char *package_id, bool consented);\r
+EXTERN_API int privacy_manager_client_check_user_consented(const char *package_id, bool *consented);\r
+EXTERN_API int privacy_manager_client_set_user_consented(const char *package_id, bool consented);\r
+\r
+EXTERN_API int privacy_manager_client_foreach_all_privacy(privacy_manager_client_all_privacy_info_cb callback, void* user_data);\r
+EXTERN_API int privacy_manager_client_foreach_package_list_by_privacy(const char *privacy_id, privacy_manager_client_packages_by_privacy_cb callback, void* user_data);\r
\r
#ifdef __cplusplus\r
}\r
int res = PrivacyIdInfo::getPrivacyIdFromPrivilege(privilege, privacyId);\r
if (res == PRIV_MGR_ERROR_NO_DATA) {\r
LOGD("NOT privacy privilege");\r
- return PRIV_MGR_ERROR_USER_NOT_CONSENTED;\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
}\r
\r
TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
std::string privacyId;\r
int res = PrivacyIdInfo::getPrivacyIdFromPrivilege(privilege, privacyId);\r
if (res == PRIV_MGR_ERROR_NO_DATA)\r
- return PRIV_MGR_ERROR_USER_NOT_CONSENTED;\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
\r
LOGI("leave");\r
std::string privacyId;\r
int res = PrivacyIdInfo::getPrivacyIdFromDeviceCap(deviceCap, privacyId);\r
if (res == PRIV_MGR_ERROR_NO_DATA)\r
- return PRIV_MGR_ERROR_USER_NOT_CONSENTED;\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
\r
LOGI("leave");\r
std::string privacyId;\r
int res = PrivacyIdInfo::getPrivacyIdFromDeviceCap(deviceCap, privacyId);\r
if (res == PRIV_MGR_ERROR_NO_DATA)\r
- return PRIV_MGR_ERROR_USER_NOT_CONSENTED;\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
TryReturn( res == PRIV_MGR_ERROR_SUCCESS, res, , "getPrivacyIdFromPrivilege : %d", res);\r
\r
LOGI("leave");\r
LOGI("leave");\r
\r
return result;\r
+}\r
+\r
+int \r
+PrivacyManagerClient::getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list)\r
+{\r
+ return PrivacyDb::getInstance()->getAppPackagesbyPrivacyId(privacyId, list);\r
}
\ No newline at end of file
#include <memory>\r
#include <dlog.h>\r
#include <PrivacyManagerClient.h>\r
+#include <PrivacyIdInfo.h>\r
#include <privacy_manager_client.h>\r
#include "privacy_manager_client_internal_types.h"\r
\r
return pInst->setPrivacySetting(package_id, privacy_id, enable);\r
}\r
\r
-int privacy_manager_client_check_user_consented(const char *package_id, bool consented)\r
+int privacy_manager_client_check_user_consented(const char *package_id, bool *consented)\r
{\r
PrivacyManagerClient* pInst = PrivacyManagerClient::getInstance();\r
\r
- return pInst->isUserPrompted(std::string(package_id), consented);\r
+ return pInst->isUserPrompted(std::string(package_id), *consented);\r
+}\r
+\r
+int privacy_manager_client_set_user_consented(const char *package_id, bool consented)\r
+{\r
+ PrivacyManagerClient* pInst = PrivacyManagerClient::getInstance();\r
+\r
+ return pInst->setUserPrompted(std::string(package_id), consented);\r
+}\r
+\r
+int privacy_manager_client_foreach_all_privacy(privacy_manager_client_all_privacy_info_cb callback, void* user_data)\r
+{\r
+ int retval;\r
+ bool res;\r
+\r
+ std::list < std::string > privacyList;\r
+ retval = PrivacyIdInfo::getAllPrivacyId(privacyList);\r
+ if (retval != PRIV_MGR_ERROR_SUCCESS)\r
+ return retval;\r
+ if (privacyList.size() == 0)\r
+ return PRIV_MGR_ERROR_NO_DATA;\r
+\r
+ for (std::list < std::string >::iterator iter = privacyList.begin(); iter != privacyList.end(); ++iter)\r
+ {\r
+ privacy_info_client_s *privacy_info_client_s = NULL;\r
+ retval = create_privacy_info_client_s(iter->c_str(), false, &privacy_info_client_s);\r
+ res = callback(privacy_info_client_s, user_data);\r
+ privacy_info_client_s_destroy(privacy_info_client_s);\r
+ if (!res)\r
+ break;\r
+ }\r
+\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int privacy_manager_client_foreach_package_list_by_privacy(const char *privacy_id, privacy_manager_client_packages_by_privacy_cb callback, void* user_data)\r
+{\r
+ int retval;\r
+ bool res;\r
+ PrivacyManagerClient* pInst = PrivacyManagerClient::getInstance();\r
+\r
+ std::list < std::pair < std::string, bool > > packageList;\r
+ retval = pInst->getAppPackagesbyPrivacyId(std::string(privacy_id), packageList);\r
+ for (std::list < std::pair < std::string, bool > >::iterator iter = packageList.begin(); iter != packageList.end(); ++iter)\r
+ {\r
+ LOGD("result : %s %d", iter->first.c_str(), iter->second);\r
+ }\r
+ if (retval != PRIV_MGR_ERROR_SUCCESS)\r
+ return retval;\r
+ if (packageList.size() == 0)\r
+ return PRIV_MGR_ERROR_NO_DATA;\r
+\r
+ for (std::list < std::pair < std::string, bool > >::iterator iter = packageList.begin(); iter != packageList.end(); ++iter)\r
+ {\r
+ res = callback(iter->first.c_str(), iter->second, user_data);\r
+ if (!res)\r
+ break;\r
+ }\r
+\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
}
\ No newline at end of file
public:\r
static PrivacyDb* getInstance(void);\r
\r
- int getPrivacyAppPackages(std::list <std::string>& list);\r
+ int getPrivacyAppPackages(std::list <std::string>& list) const;\r
\r
- int getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair < std::string, bool > > & list);\r
+ int getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair < std::string, bool > > & list) const;\r
\r
int setPrivacySetting(const std::string pkgId, const std::string privacyId, bool enabled);\r
\r
\r
int removeAppPackagePrivacyInfo(const std::string pkgId);\r
\r
- int isUserPrompted(const std::string pkgId, bool& isPrompted);\r
+ int isUserPrompted(const std::string pkgId, bool& isPrompted) const;\r
\r
int setUserPrompted(const std::string pkgId, bool prompted);\r
\r
+ int getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list) const;\r
};\r
\r
\r
static int initialize(void);\r
static int getPrivacyIdFromPrivilege(const std::string privilege, std::string& privacyId);\r
static int getPrivacyIdFromDeviceCap(const std::string deviceCap, std::string& privacyId);\r
-\r
static int getPrivacyIdListFromPrivilegeList(const std::list < std::string> privilegeList, std::list < std::string> & privacyIdList);\r
+ static int getAllPrivacyId(std::list < std::string >& privacyIdList);\r
};\r
\r
#endif //_PRIVACY_ID_INFO_H_
\ No newline at end of file
}\r
\r
int\r
-PrivacyDb::getPrivacyAppPackages(std::list <std::string>& list)\r
+PrivacyDb::getPrivacyAppPackages(std::list <std::string>& list) const\r
{\r
LOGI("enter");\r
\r
}\r
\r
int\r
-PrivacyDb::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair < std::string, bool > >& privacyInfoList)\r
+PrivacyDb::getAppPackagePrivacyInfo(const std::string pkgId, std::list < std::pair < std::string, bool > >& privacyInfoList) const\r
{\r
LOGI("enter");\r
\r
}\r
\r
int\r
-PrivacyDb::isUserPrompted(const std::string pkgId, bool& isPrompted)\r
+PrivacyDb::isUserPrompted(const std::string pkgId, bool& isPrompted) const\r
{\r
LOGI("enter");\r
\r
return 0;\r
}\r
\r
+int\r
+PrivacyDb::getAppPackagesbyPrivacyId(std::string privacyId, std::list < std::pair < std::string, bool > >& list) const\r
+{\r
+ LOGI("enter");\r
+\r
+ std::string sql = std::string("SELECT PKG_ID, IS_ENABLED from PrivacyInfo where PRIVACY_ID=?");\r
+\r
+ openDb(PRIVACY_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READWRITE);\r
+ prepareDb(pDbHandler, sql.c_str(), pStmt);\r
+\r
+ LOGD("privacy id : %s", privacyId.c_str());\r
+ int res = sqlite3_bind_text(pStmt.get(), 1, privacyId.c_str(), -1, SQLITE_TRANSIENT);\r
+ TryReturn( res == SQLITE_OK, PRIV_MGR_ERROR_DB_ERROR, , "sqlite3_bind_text : %d", res);\r
+\r
+ while ( sqlite3_step(pStmt.get()) == SQLITE_ROW )\r
+ {\r
+ \r
+ const char* pPkgId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
+ bool isEnabled = sqlite3_column_int(pStmt.get(), 1) > 0 ? true : false;\r
+ LOGD("result : %s %d", pPkgId, isEnabled);\r
+ list.push_back( std::pair <std::string, bool >(std::string(pPkgId), isEnabled) );\r
+ }\r
+\r
+ \r
+\r
+\r
+ LOGI("leave %d", res);\r
+\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+\r
PrivacyDb::PrivacyDb(void)\r
{\r
\r
privacyIdList.push_back(*iter);\r
}\r
\r
+ return PRIV_MGR_ERROR_SUCCESS;\r
+}\r
+\r
+int\r
+PrivacyIdInfo::getAllPrivacyId(std::list < std::string >& privacyIdList)\r
+{\r
+ static const std::string sql("SELECT PRIVACY_ID from PrivacyInfo");\r
+\r
+ LOGI("enter");\r
+ \r
+ openDb(PRIVACY_INFO_DB_PATH.c_str(), pDbHandler, SQLITE_OPEN_READONLY);\r
+ prepareDb(pDbHandler, sql.c_str(), pStmt);\r
+\r
+ int res;\r
+ while ( (res = sqlite3_step(pStmt.get())) == SQLITE_ROW )\r
+ {\r
+ const char* privacyId = reinterpret_cast < const char* > (sqlite3_column_text(pStmt.get(), 0));\r
+ privacyIdList.push_back(std::string(privacyId));\r
+ LOGD(" privacy Id : %s", privacyId);\r
+ }\r
+\r
return PRIV_MGR_ERROR_SUCCESS;\r
}
\ No newline at end of file
Name: privacy-manager-server
Summary: Privacy Management
Version: 0.0.2
-Release: 2
+Release: 3
Group: System/Libraries
License: SAMSUNG
Source0: %{name}-%{version}.tar.gz
#mkdir -p %{buildroot}/etc/rc.d/rc3.d
#mkdir -p %{buildroot}/etc/rc.d/rc5.d
-#ln -sf res/etc/rc.d/init.d/privacy-manager-server.sh %{buildroot}/etc/rc.d/rc3.d/S10privacy-manager-server.sh
-#ln -sf res/etc/rc.d/init.d/privacy-manager-server.sh %{buildroot}/etc/rc.d/rc5.d/S10privacy-manager-server.sh
+#ln -sf /etc/rc.d/init.d/privacy-manager-server.sh %{buildroot}/etc/rc.d/rc3.d/S10privacy-manager-server.sh
+#ln -sf /etc/rc.d/init.d/privacy-manager-server.sh %{buildroot}/etc/rc.d/rc5.d/S10privacy-manager-server.sh
mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
install -m 0644 %{SOURCE3} %{buildroot}%{_libdir}/systemd/system/privacy-manager-server.service
}\r
\r
LOGI("leave");\r
+ \r
+ return 0;\r
}\r
\r
extern "C"\r
#include "SocketConnection.h"\r
\r
const int SocketService::MAX_LISTEN = 5;\r
-const int SocketService::TIMEOUT_SEC = 0;\r
-const int SocketService::TIMEOUT_NSEC = 100000000;\r
\r
SocketService::SocketService(void)\r
: m_listenFd(-1)\r
FD_ZERO(&allset);\r
FD_SET(m_listenFd, &allset);\r
FD_SET(signal_fd, &allset);\r
- timespec timeout;\r
maxfd = (m_listenFd > signal_fd) ? (m_listenFd) : (signal_fd);\r
++maxfd;\r
//this will block SIGPIPE for this thread and every thread created in it\r
\r
while(1)\r
{\r
- timeout.tv_sec = TIMEOUT_SEC;\r
- timeout.tv_nsec = TIMEOUT_NSEC;\r
rset = allset;\r
- if(pselect(maxfd, &rset, NULL, NULL, &timeout, NULL) == -1)\r
+ if(pselect(maxfd, &rset, NULL, NULL, NULL, NULL) == -1)\r
{\r
closeConnections();\r
LOGE("pselect()");\r
}\r
\r
LOGI("Connections closed");\r
-}
\ No newline at end of file
+}\r