diff --git a/interfaces/inner_kits/native_cpp/camera_sink/BUILD.gn b/interfaces/inner_kits/native_cpp/camera_sink/BUILD.gn index 33d359b691f199e414c9f699b467cfd7e2ddc4e6..4d2e55719b4f3d52738ff08af724a1027be9a722 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/camera_sink/BUILD.gn @@ -49,7 +49,6 @@ ohos_shared_library("distributed_camera_sink_sdk") { ] external_deps = [ - "eventhandler:libeventhandler", "hiviewdfx_hilog_native:libhilog", "ipc:ipc_core", "samgr_standard:samgr_proxy", diff --git a/interfaces/inner_kits/native_cpp/camera_sink/include/dcamera_sink_handler_ipc.h b/interfaces/inner_kits/native_cpp/camera_sink/include/dcamera_sink_handler_ipc.h index c443589a1adf7edcc63d3fafbb135770b851ff77..94b660c0d23a1d297bc35f7e889db25a8876cdd0 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/include/dcamera_sink_handler_ipc.h +++ b/interfaces/inner_kits/native_cpp/camera_sink/include/dcamera_sink_handler_ipc.h @@ -16,7 +16,6 @@ #ifndef OHOS_DCAMERA_SINK_HANDLER_IPC_H #define OHOS_DCAMERA_SINK_HANDLER_IPC_H -#include "event_handler.h" #include "idistributed_camera_sink.h" #include "single_instance.h" @@ -46,7 +45,6 @@ private: std::mutex sinkLocalDmsLock_; bool isInit_; - std::shared_ptr serviceHandler_; std::mutex initDmsLock_; }; } // namespace DistributedHardware diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp index cc8992eaa768d11c953e25c46233fd03f86cabdf..c3506b6d5479b99e28b2e9c5f5393d08b199387e 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/dcamera_sink_handler_ipc.cpp @@ -46,8 +46,6 @@ void DCameraSinkHandlerIpc::Init() DHLOGI("DCameraSinkHandlerIpc has already init"); return; } - auto runner = AppExecFwk::EventRunner::Create("DCameraSinkHandlerIpcHandler"); - serviceHandler_ = std::make_shared(runner); sinkLocalRecipient_ = new SinkLocalRecipient(); isInit_ = true; DHLOGI("DCameraSinkHandlerIpc Init End"); @@ -62,8 +60,6 @@ void DCameraSinkHandlerIpc::UnInit() return; } DeleteSinkLocalDhms(); - DHLOGI("DCameraSinkHandlerIpc Start free serviceHandler"); - serviceHandler_ = nullptr; DHLOGI("DCameraSinkHandlerIpc Start free recipient"); sinkLocalRecipient_ = nullptr; isInit_ = false; @@ -127,28 +123,18 @@ void DCameraSinkHandlerIpc::SinkLocalRecipient::OnRemoteDied(const wptr& remote) { - sptr diedRemoted = remote.promote(); - if (diedRemoted == nullptr) { - DHLOGE("OnSinkLocalDmsDied promote failed!"); - return; - } DHLOGI("OnSinkLocalDmsDied delete diedRemoted"); - auto remoteDmsDiedFunc = [this, diedRemoted]() { - OnSinkLocalDmsDied(diedRemoted); - }; - if (serviceHandler_ != nullptr) { - serviceHandler_->PostTask(remoteDmsDiedFunc); - } -} - -void DCameraSinkHandlerIpc::OnSinkLocalDmsDied(const sptr& remote) -{ std::lock_guard autoLock(sinkLocalDmsLock_); if (localSink_ == nullptr) { DHLOGE("DCameraSinkHandlerIpc::OnSinkLocalDmsDied, localSink is null."); return; } - if (localSink_->AsObject() != remote) { + sptr diedRemoted = remote.promote(); + if (diedRemoted == nullptr) { + DHLOGE("OnSinkLocalDmsDied promote failed!"); + return; + } + if (localSink_->AsObject() != diedRemoted) { DHLOGI("OnSinkLocalDmsDied not found remote object."); return; } diff --git a/interfaces/inner_kits/native_cpp/camera_source/BUILD.gn b/interfaces/inner_kits/native_cpp/camera_source/BUILD.gn index 011442db8f77fb9ab5d47e4a7482b44b7f8772ce..fdca314acc7054ab4b5dc5028a3b42c80d655bb8 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/camera_source/BUILD.gn @@ -52,7 +52,6 @@ ohos_shared_library("distributed_camera_source_sdk") { ] external_deps = [ - "eventhandler:libeventhandler", "hiviewdfx_hilog_native:libhilog", "ipc:ipc_core", "samgr_standard:samgr_proxy", diff --git a/interfaces/inner_kits/native_cpp/camera_source/include/dcamera_source_handler_ipc.h b/interfaces/inner_kits/native_cpp/camera_source/include/dcamera_source_handler_ipc.h index d19635ecb1318cde987291a25550a05fecc4c893..d12def1863ef1f344d852a25fc3566f9bdedb821 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/include/dcamera_source_handler_ipc.h +++ b/interfaces/inner_kits/native_cpp/camera_source/include/dcamera_source_handler_ipc.h @@ -16,7 +16,6 @@ #ifndef OHOS_DCAMERA_SOURCE_HANDLER_IPC_H #define OHOS_DCAMERA_SOURCE_HANDLER_IPC_H -#include "event_handler.h" #include "idistributed_camera_source.h" #include "single_instance.h" @@ -34,7 +33,6 @@ public: private: DCameraSourceHandlerIpc(); ~DCameraSourceHandlerIpc(); - void OnSourceLocalDmsDied(const sptr& remote); void DeleteSourceLocalDhms(); class SourceLocalRecipient : public IRemoteObject::DeathRecipient { @@ -46,7 +44,6 @@ private: std::mutex sourceLocalDmsLock_; bool isInit_; - std::shared_ptr serviceHandler_; std::mutex initDmsLock_; }; } // namespace DistributedHardware diff --git a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp index 0964d6663e6461cf32cbab099e2d2ce0304882af..5825f371bda4f9d17d785f3302e9371fb0adb517 100644 --- a/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp +++ b/interfaces/inner_kits/native_cpp/camera_source/src/dcamera_source_handler_ipc.cpp @@ -46,8 +46,6 @@ void DCameraSourceHandlerIpc::Init() DHLOGI("DCameraSourceHandlerIpc has already init"); return; } - auto runner = AppExecFwk::EventRunner::Create("DCameraSourceHandlerIpcHandler"); - serviceHandler_ = std::make_shared(runner); sourceLocalRecipient_ = new SourceLocalRecipient(); isInit_ = true; DHLOGI("DCameraSourceHandlerIpc Init End"); @@ -62,8 +60,6 @@ void DCameraSourceHandlerIpc::UnInit() return; } DeleteSourceLocalDhms(); - DHLOGI("DCameraSourceHandlerIpc Start free serviceHandler"); - serviceHandler_ = nullptr; DHLOGI("DCameraSourceHandlerIpc Start free recipient"); sourceLocalRecipient_ = nullptr; isInit_ = false; @@ -127,35 +123,25 @@ void DCameraSourceHandlerIpc::SourceLocalRecipient::OnRemoteDied(const wptr& remote) { - sptr diedRemoted = remote.promote(); - if (diedRemoted == nullptr) { - DHLOGE("OnSourceLocalDmsDied promote failed!"); - return; - } DHLOGI("OnSourceLocalDmsDied delete diedRemoted"); - auto remoteDmsDiedFunc = [this, diedRemoted]() { - OnSourceLocalDmsDied(diedRemoted); - }; - if (serviceHandler_ != nullptr) { - serviceHandler_->PostTask(remoteDmsDiedFunc); - } -} - -void DCameraSourceHandlerIpc::OnSourceLocalDmsDied(const sptr& remote) -{ std::lock_guard autoLock(sourceLocalDmsLock_); if (localSource_ == nullptr) { DHLOGE("DCameraSourceHandlerIpc::OnSourceLocalDmsDied, localSource is null."); return; } - if (localSource_->AsObject() != remote) { + sptr diedRemoted = remote.promote(); + if (diedRemoted == nullptr) { + DHLOGE("OnSourceLocalDmsDied promote failed!"); + return; + } + if (localSource_->AsObject() != diedRemoted) { DHLOGI("OnSourceLocalDmsDied not found remote object."); return; } - DHLOGI("OnSourceLocalDmsDied Clear"); localSource_->AsObject()->RemoveDeathRecipient(sourceLocalRecipient_); localSource_ = nullptr; } + } // namespace DistributedHardware } // namespace OHOS diff --git a/services/cameraservice/sinkservice/include/distributedcameramgr/dcamera_sink_service_ipc.h b/services/cameraservice/sinkservice/include/distributedcameramgr/dcamera_sink_service_ipc.h index bae9d8e213d9dc39f5c09ad3929338b911407cdc..9e047b202b3a005abf347a05c2b35f7442603d46 100644 --- a/services/cameraservice/sinkservice/include/distributedcameramgr/dcamera_sink_service_ipc.h +++ b/services/cameraservice/sinkservice/include/distributedcameramgr/dcamera_sink_service_ipc.h @@ -16,8 +16,10 @@ #ifndef OHOS_DCAMERA_SINK_SERVICE_IPC_H #define OHOS_DCAMERA_SINK_SERVICE_IPC_H -#include "event_handler.h" #include "idistributed_camera_source.h" + +#include + #include "single_instance.h" namespace OHOS { @@ -35,7 +37,6 @@ public: private: DCameraSinkServiceIpc(); ~DCameraSinkServiceIpc(); - void OnSourceRemoteDmsDied(const sptr& remote); void ClearSourceRemoteDhms(); class SourceRemoteRecipient : public IRemoteObject::DeathRecipient { @@ -47,7 +48,6 @@ private: std::mutex sourceRemoteDmsLock_; bool isInit_; - std::shared_ptr serviceHandler_; std::mutex initDmsLock_; }; } // namespace DistributedHardware diff --git a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_service_ipc.cpp b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_service_ipc.cpp index dd0b83b9bb834953d0f18a434567021ab65ba55a..c98da8aaf9be2cff4f86249d744c13d91796f067 100644 --- a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_service_ipc.cpp +++ b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_service_ipc.cpp @@ -46,8 +46,6 @@ void DCameraSinkServiceIpc::Init() DHLOGI("DCameraSinkServiceIpc has already init"); return; } - auto runner = AppExecFwk::EventRunner::Create("DCameraSinkServiceIpcHandler"); - serviceHandler_ = std::make_shared(runner); sourceRemoteRecipient_ = new SourceRemoteRecipient(); isInit_ = true; DHLOGI("DCameraSinkServiceIpc Init End"); @@ -62,8 +60,6 @@ void DCameraSinkServiceIpc::UnInit() return; } ClearSourceRemoteDhms(); - DHLOGI("DCameraSinkServiceIpc Start free serviceHandler"); - serviceHandler_ = nullptr; DHLOGI("DCameraSinkServiceIpc Start free recipient"); sourceRemoteRecipient_ = nullptr; isInit_ = false; @@ -155,37 +151,28 @@ void DCameraSinkServiceIpc::SourceRemoteRecipient::OnRemoteDied(const wptr& remote) { + DHLOGI("OnSourceRemoteDmsDied delete diedRemoted"); + std::lock_guard autoLock(sourceRemoteDmsLock_); sptr diedRemoted = remote.promote(); if (diedRemoted == nullptr) { DHLOGE("OnSourceRemoteDmsDied promote failed!"); return; } - DHLOGI("OnSourceRemoteDmsDied delete diedRemoted"); - auto remoteDmsDiedFunc = [this, diedRemoted]() { - OnSourceRemoteDmsDied(diedRemoted); - }; - if (serviceHandler_ != nullptr) { - serviceHandler_->PostTask(remoteDmsDiedFunc); - } -} - -void DCameraSinkServiceIpc::OnSourceRemoteDmsDied(const sptr& remote) -{ - std::lock_guard autoLock(sourceRemoteDmsLock_); auto iter = std::find_if(remoteSources_.begin(), remoteSources_.end(), [&]( const std::pair> &item)->bool { - return item.second->AsObject() == remote; + return item.second->AsObject() == diedRemoted; }); if (iter == remoteSources_.end()) { DHLOGI("OnSourceRemoteDmsDied not found remote object"); return; } - DHLOGI("OnSourceRemoteDmsDied remote.devId: %s", GetAnonyString(iter->first).c_str()); if (iter->second != nullptr) { iter->second->AsObject()->RemoveDeathRecipient(sourceRemoteRecipient_); } remoteSources_.erase(iter); + } + } // namespace DistributedHardware } // namespace OHOS diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_service_ipc.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_service_ipc.h index 2fe81f6e8503f4f469dc6cf4b7a1e3a82f950f89..abf6a69dee7710e9b17905489d4bb84a72463732 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_service_ipc.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_service_ipc.h @@ -16,8 +16,10 @@ #ifndef OHOS_DCAMERA_SOURCE_SERVICE_IPC_H #define OHOS_DCAMERA_SOURCE_SERVICE_IPC_H -#include "event_handler.h" #include "idistributed_camera_sink.h" + +#include + #include "single_instance.h" namespace OHOS { @@ -35,7 +37,6 @@ public: private: DCameraSourceServiceIpc(); ~DCameraSourceServiceIpc(); - void OnSinkRemoteDmsDied(const sptr& remote); void ClearSinkRemoteDhms(); class SinkRemoteRecipient : public IRemoteObject::DeathRecipient { @@ -47,7 +48,6 @@ private: std::mutex sinkRemoteDmsLock_; bool isInit_; - std::shared_ptr serviceHandler_; std::mutex initDmsLock_; }; } // namespace DistributedHardware diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_service_ipc.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_service_ipc.cpp index 55bec13dc76358f0ee2cf44076cd641c2e8ee048..0b1728e1dba9b0d3c9ea3697c9ab6c8224cb3195 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_service_ipc.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_service_ipc.cpp @@ -46,8 +46,6 @@ void DCameraSourceServiceIpc::Init() DHLOGI("DCameraSourceServiceIpc has already init"); return; } - auto runner = AppExecFwk::EventRunner::Create("DCameraSourceServiceIpcHandler"); - serviceHandler_ = std::make_shared(runner); sinkRemoteRecipient_ = new SinkRemoteRecipient(); isInit_ = true; DHLOGI("DCameraSourceServiceIpc Init End"); @@ -62,8 +60,6 @@ void DCameraSourceServiceIpc::UnInit() return; } ClearSinkRemoteDhms(); - DHLOGI("DCameraSourceServiceIpc UnInit Start free servicehandle"); - serviceHandler_ = nullptr; DHLOGI("DCameraSourceServiceIpc UnInit Start free recipient"); sinkRemoteRecipient_ = nullptr; isInit_ = false; @@ -155,26 +151,16 @@ void DCameraSourceServiceIpc::SinkRemoteRecipient::OnRemoteDied(const wptr& remote) { + DHLOGI("OnSinkRemoteDmsDied delete diedRemoted"); + std::lock_guard autoLock(sinkRemoteDmsLock_); sptr diedRemoted = remote.promote(); if (diedRemoted == nullptr) { DHLOGE("OnSinkRemoteDmsDied promote failed!"); return; } - DHLOGI("OnSinkRemoteDmsDied delete diedRemoted"); - auto remoteDmsDiedFunc = [this, diedRemoted]() { - OnSinkRemoteDmsDied(diedRemoted); - }; - if (serviceHandler_ != nullptr) { - serviceHandler_->PostTask(remoteDmsDiedFunc); - } -} - -void DCameraSourceServiceIpc::OnSinkRemoteDmsDied(const sptr& remote) -{ - std::lock_guard autoLock(sinkRemoteDmsLock_); auto iter = std::find_if(remoteSinks_.begin(), remoteSinks_.end(), [&]( const std::pair> &item)->bool { - return item.second->AsObject() == remote; + return item.second->AsObject() == diedRemoted; }); if (iter == remoteSinks_.end()) { DHLOGI("OnSinkRemoteDmsDied not found remote object");