diff --git a/services/accesstokenmanager/main/cpp/src/database/access_token_db_loader.cpp b/services/accesstokenmanager/main/cpp/src/database/access_token_db_loader.cpp index 3cd75d31da5e1f6e352ceb5f5a7d9ef768fc55b8..3356d791c99dde2e76b90d599e6cd40b283e90e9 100644 --- a/services/accesstokenmanager/main/cpp/src/database/access_token_db_loader.cpp +++ b/services/accesstokenmanager/main/cpp/src/database/access_token_db_loader.cpp @@ -96,7 +96,6 @@ void Destroy(void* loaderPtr) delete loader; loader = nullptr; } - loaderPtr = nullptr; } } } // namespace AccessToken diff --git a/services/accesstokenmanager/main/cpp/src/database/access_token_db_util.cpp b/services/accesstokenmanager/main/cpp/src/database/access_token_db_util.cpp index 46003e87f86db49f081e4e3b61f2459c3141da63..f77e28c494b59f56278057f8f92428b13e29ae4f 100644 --- a/services/accesstokenmanager/main/cpp/src/database/access_token_db_util.cpp +++ b/services/accesstokenmanager/main/cpp/src/database/access_token_db_util.cpp @@ -16,17 +16,18 @@ #include "access_token_db_util.h" #include +#include namespace OHOS { namespace Security { namespace AccessToken { namespace { -static const std::vector g_StringTypeColumns = { +static const std::unordered_set g_stringTypeColumns = { "description", "permission_name", "device_id", "bundle_name", "app_id", "process_name", "dcap", "native_acls", "label", "value", "name", "app_distribution_type" }; -static const std::map g_DateTypeToTableName = { +static const std::map g_dateTypeToTableName = { {AtmDataType::ACCESSTOKEN_HAP_INFO, "hap_token_info_table"}, {AtmDataType::ACCESSTOKEN_NATIVE_INFO, "native_token_info_table"}, {AtmDataType::ACCESSTOKEN_PERMISSION_DEF, "permission_definition_table"}, @@ -40,16 +41,16 @@ static const std::map g_DateTypeToTableName = { void AccessTokenDbUtil::GetTableNameByType(const AtmDataType type, std::string& tableName) { - auto iterator = g_DateTypeToTableName.find(type); - if (iterator != g_DateTypeToTableName.end()) { + auto iterator = g_dateTypeToTableName.find(type); + if (iterator != g_dateTypeToTableName.end()) { tableName = iterator->second; } } bool AccessTokenDbUtil::IsColumnStringType(const std::string& column) { - auto iterator = std::find(g_StringTypeColumns.begin(), g_StringTypeColumns.end(), column); - if (iterator != g_StringTypeColumns.end()) { + auto iterator = std::find(g_stringTypeColumns.begin(), g_stringTypeColumns.end(), column); + if (iterator != g_stringTypeColumns.end()) { return true; } diff --git a/services/common/background_task_manager/include/background_task_manager_access_proxy.h b/services/common/background_task_manager/include/background_task_manager_access_proxy.h index e04e51f735fddd2094d18f25fb0a142a6554d0b5..c5a0bb32b0bf75577cc58ffb399d30165815f0cf 100644 --- a/services/common/background_task_manager/include/background_task_manager_access_proxy.h +++ b/services/common/background_task_manager/include/background_task_manager_access_proxy.h @@ -65,6 +65,7 @@ public: int32_t UnsubscribeBackgroundTask(const sptr& subscriber) override; int32_t GetContinuousTaskApps(std::vector> &list) override; private: + int32_t SubscribeBackgroundTaskCommon(const sptr& subscriber, uint32_t code); static inline BrokerDelegator delegator_; }; } // namespace AccessToken diff --git a/services/common/background_task_manager/src/background_task_manager_access_proxy.cpp b/services/common/background_task_manager/src/background_task_manager_access_proxy.cpp index 88d8e45f7a47994b49b286ce110ebe4e279d9866..7d8c0299b2fdae124d74c74dd26bae9f9bc70df8 100644 --- a/services/common/background_task_manager/src/background_task_manager_access_proxy.cpp +++ b/services/common/background_task_manager/src/background_task_manager_access_proxy.cpp @@ -25,7 +25,8 @@ static constexpr int32_t ERROR = -1; static constexpr int32_t MAX_CALLBACK_NUM = 10 * 1024; } -int32_t BackgroundTaskManagerAccessProxy::SubscribeBackgroundTask(const sptr& subscriber) +int32_t BackgroundTaskManagerAccessProxy::SubscribeBackgroundTaskCommon( + const sptr& subscriber, uint32_t code) { if (subscriber == nullptr) { LOGE(ATM_DOMAIN, ATM_TAG, "Subscriber is nullptr."); @@ -47,8 +48,7 @@ int32_t BackgroundTaskManagerAccessProxy::SubscribeBackgroundTask(const sptrSendRequest( - static_cast(IBackgroundTaskMgr::Message::SUBSCRIBE_BACKGROUND_TASK), data, reply, option); + int32_t error = remote->SendRequest(code, data, reply, option); if (error != ERR_NONE) { LOGE(ATM_DOMAIN, ATM_TAG, "Regist background task observer failed, error: %{public}d", error); return ERROR; @@ -61,40 +61,16 @@ int32_t BackgroundTaskManagerAccessProxy::SubscribeBackgroundTask(const sptr& subscriber) +{ + return SubscribeBackgroundTaskCommon(subscriber, + static_cast(IBackgroundTaskMgr::Message::SUBSCRIBE_BACKGROUND_TASK)); +} + int32_t BackgroundTaskManagerAccessProxy::UnsubscribeBackgroundTask(const sptr& subscriber) { - if (subscriber == nullptr) { - LOGE(ATM_DOMAIN, ATM_TAG, "Subscriber is nullptr."); - return ERROR; - } - MessageParcel data; - MessageParcel reply; - MessageOption option; - if (!data.WriteInterfaceToken(GetDescriptor())) { - LOGE(ATM_DOMAIN, ATM_TAG, "WriteInterfaceToken failed."); - return ERROR; - } - if (!data.WriteRemoteObject(subscriber->AsObject())) { - LOGE(ATM_DOMAIN, ATM_TAG, "Write callerToken failed."); - return ERROR; - } - sptr remote = Remote(); - if (remote == nullptr) { - LOGE(ATM_DOMAIN, ATM_TAG, "Remote service is null."); - return ERROR; - } - int32_t error = remote->SendRequest( - static_cast(IBackgroundTaskMgr::Message::UNSUBSCRIBE_BACKGROUND_TASK), data, reply, option); - if (error != ERR_NONE) { - LOGE(ATM_DOMAIN, ATM_TAG, "Unregist background task observer failed, error: %d", error); - return error; - } - int32_t result; - if (!reply.ReadInt32(result)) { - LOGE(ATM_DOMAIN, ATM_TAG, "ReadInt32 failed."); - return ERROR; - } - return result; + return SubscribeBackgroundTaskCommon(subscriber, + static_cast(IBackgroundTaskMgr::Message::UNSUBSCRIBE_BACKGROUND_TASK)); } int32_t BackgroundTaskManagerAccessProxy::GetContinuousTaskApps(