From a0459d0ae49bb75f1f78c5725e57c16821108e73 Mon Sep 17 00:00:00 2001 From: toutes Date: Mon, 22 Aug 2022 16:23:13 +0800 Subject: [PATCH] fix: Modification of coding complexity Signed-off-by: toutes Change-Id: Ibbbd2c2d73d3dc5516b7cec3ce1ffc706e90c35d --- service/zidl/include/display_power_mgr_stub.h | 6 + service/zidl/src/display_power_mgr_stub.cpp | 107 ++++++++---------- 2 files changed, 54 insertions(+), 59 deletions(-) diff --git a/service/zidl/include/display_power_mgr_stub.h b/service/zidl/include/display_power_mgr_stub.h index 1709bf0..bfb5d2a 100644 --- a/service/zidl/include/display_power_mgr_stub.h +++ b/service/zidl/include/display_power_mgr_stub.h @@ -16,6 +16,7 @@ #ifndef DISPLAYMGR_DISPLAY_MGR_STUB_H #define DISPLAYMGR_DISPLAY_MGR_STUB_H +#include #include #include #include "refbase.h" @@ -28,6 +29,7 @@ namespace DisplayPowerMgr { class DisplayPowerMgrStub : public IRemoteStub { public: int32_t OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; + DisplayPowerMgrStub(); private: int32_t SetDisplayStateStub(MessageParcel& data, MessageParcel& reply); @@ -49,6 +51,10 @@ private: int32_t BoostBrightnessStub(MessageParcel& data, MessageParcel& reply); int32_t CancelBoostBrightnessStub(MessageParcel& data, MessageParcel& reply); int32_t GetDeviceBrightnessStub(MessageParcel& data, MessageParcel& reply); + + using DisplayPowerMgrStubFunc = + int32_t (DisplayPowerMgrStub::*)(MessageParcel &data, MessageParcel &reply); + std::map memberFuncMap_; }; } // namespace DisplayPowerMgr } // namespace OHOS diff --git a/service/zidl/src/display_power_mgr_stub.cpp b/service/zidl/src/display_power_mgr_stub.cpp index 3a8bd6a..85ecff9 100644 --- a/service/zidl/src/display_power_mgr_stub.cpp +++ b/service/zidl/src/display_power_mgr_stub.cpp @@ -30,6 +30,45 @@ namespace OHOS { namespace DisplayPowerMgr { +DisplayPowerMgrStub::DisplayPowerMgrStub() +{ + memberFuncMap_[IDisplayPowerMgr::SET_DISPLAY_STATE] = + &DisplayPowerMgrStub::SetDisplayStateStub; + memberFuncMap_[IDisplayPowerMgr::GET_DISPLAY_STATE] = + &DisplayPowerMgrStub::GetDisplayStateStub; + memberFuncMap_[IDisplayPowerMgr::GET_DISPLAY_IDS] = + &DisplayPowerMgrStub::GetDisplayIdsStub; + memberFuncMap_[IDisplayPowerMgr::GET_MAIN_DISPLAY_ID] = + &DisplayPowerMgrStub::GetMainDisplayIdStub; + memberFuncMap_[IDisplayPowerMgr::SET_BRIGHTNESS] = + &DisplayPowerMgrStub::SetBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::DISCOUNT_BRIGHTNESS] = + &DisplayPowerMgrStub::DiscountBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::OVERRIDE_BRIGHTNESS] = + &DisplayPowerMgrStub::OverrideBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::RESTORE_BRIGHTNESS] = + &DisplayPowerMgrStub::RestoreBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::GET_BRIGHTNESS] = + &DisplayPowerMgrStub::GetBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::GET_DEFAULT_BRIGHTNESS] = + &DisplayPowerMgrStub::GetDefaultBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::GET_MAX_BRIGHTNESS] = + &DisplayPowerMgrStub::GetMaxBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::GET_MIN_BRIGHTNESS] = + &DisplayPowerMgrStub::GetMinBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::ADJUST_BRIGHTNESS] = + &DisplayPowerMgrStub::AdjustBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::AUTO_ADJUST_BRIGHTNESS] = + &DisplayPowerMgrStub::AutoAdjustBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::IS_AUTO_ADJUST_BRIGHTNESS] = + &DisplayPowerMgrStub::IsAutoAdjustBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::BOOST_BRIGHTNESS] = + &DisplayPowerMgrStub::BoostBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::CANCEL_BOOST_BRIGHTNESS] = + &DisplayPowerMgrStub::CancelBoostBrightnessStub; + memberFuncMap_[IDisplayPowerMgr::GET_DEVICE_BRIGHTNESS] = + &DisplayPowerMgrStub::GetDeviceBrightnessStub; +} int32_t DisplayPowerMgrStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { @@ -46,66 +85,16 @@ int32_t DisplayPowerMgrStub::OnRemoteRequest(uint32_t code, MessageParcel &data, int id = HiviewDFX::XCollie::GetInstance().SetTimer("DisplayPowerMgrStub", DFX_DELAY_MS, nullptr, nullptr, HiviewDFX::XCOLLIE_FLAG_NOOP); int32_t ret = ERR_OK; - switch (code) { - case static_cast(IDisplayPowerMgr::SET_DISPLAY_STATE): - ret = SetDisplayStateStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_DISPLAY_STATE): - ret = GetDisplayStateStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_DISPLAY_IDS): - ret = GetDisplayIdsStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_MAIN_DISPLAY_ID): - ret = GetMainDisplayIdStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::SET_BRIGHTNESS): - ret = SetBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::DISCOUNT_BRIGHTNESS): - ret = DiscountBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::OVERRIDE_BRIGHTNESS): - ret = OverrideBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::RESTORE_BRIGHTNESS): - ret = RestoreBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_BRIGHTNESS): - ret = GetBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_DEFAULT_BRIGHTNESS): - ret = GetDefaultBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_MAX_BRIGHTNESS): - ret = GetMaxBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_MIN_BRIGHTNESS): - ret = GetMinBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::ADJUST_BRIGHTNESS): - ret = AdjustBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::AUTO_ADJUST_BRIGHTNESS): - ret = AutoAdjustBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::IS_AUTO_ADJUST_BRIGHTNESS): - ret = IsAutoAdjustBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::BOOST_BRIGHTNESS): - ret = BoostBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::CANCEL_BOOST_BRIGHTNESS): - ret = CancelBoostBrightnessStub(data, reply); - break; - case static_cast(IDisplayPowerMgr::GET_DEVICE_BRIGHTNESS): - ret = GetDeviceBrightnessStub(data, reply); - break; - default: - ret = IPCObjectStub::OnRemoteRequest(code, data, reply, option); - break; - } + auto itFunc = memberFuncMap_.find(code); + if (itFunc != memberFuncMap_.end()) { + auto memberFunc = itFunc->second; + ret = (this->*memberFunc)(data, reply); + } else { + DISPLAY_HILOGD(COMP_SVC, "DisplayPowerMgrStub: default case, need check."); + ret = IPCObjectStub::OnRemoteRequest(code, data, reply, option); + } + HiviewDFX::XCollie::GetInstance().CancelTimer(id); return ret; } -- Gitee