From 46379f7839140037d21eec490c2792ff7ad3b93a Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Sat, 23 Dec 2023 20:49:09 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- .../dcamera_sink_controller.cpp | 8 +- .../dcamera_source_controller.cpp | 26 +- .../dcameradata/dcamera_source_input.cpp | 52 +-- .../dcamera_provider_callback_impl.cpp | 4 +- .../include/dcamera_channel_sink_impl.h | 1 - .../include/dcamera_channel_source_impl.h | 1 - .../channel/include/dcamera_softbus_adapter.h | 70 ++- .../channel/include/dcamera_softbus_session.h | 5 +- services/channel/include/icamera_channel.h | 1 - .../channel/src/dcamera_channel_sink_impl.cpp | 33 +- .../src/dcamera_channel_source_impl.cpp | 61 +-- .../channel/src/dcamera_softbus_adapter.cpp | 442 ++++++++++-------- .../channel/src/dcamera_softbus_session.cpp | 42 +- .../test/unittest/common/channel/session.h | 202 -------- 14 files changed, 349 insertions(+), 599 deletions(-) delete mode 100644 services/channel/test/unittest/common/channel/session.h diff --git a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp index c9962f3a..97211e5d 100644 --- a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp +++ b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_controller.cpp @@ -191,7 +191,7 @@ int32_t DCameraSinkController::GetCameraInfo(std::shared_ptr& camIn int32_t DCameraSinkController::OpenChannel(std::shared_ptr& openInfo) { - DHLOGI("OpenChannel dhId: %s", GetAnonyString(dhId_).c_str()); + DHLOGI("DCameraSinkController OpenChannel Start, dhId: %s", GetAnonyString(dhId_).c_str()); if (!CheckPermission()) { DHLOGE("DCameraSinkController OpenChannel fail, CheckPermission fail"); return DCAMERA_WRONG_STATE; @@ -238,7 +238,7 @@ int32_t DCameraSinkController::OpenChannel(std::shared_ptr& ope if (ret != DCAMERA_OK) { return ret; } - DHLOGI("OpenChannel %s success", GetAnonyString(dhId_).c_str()); + DHLOGI("DCameraSinkController OpenChannel %s success", GetAnonyString(dhId_).c_str()); return DCAMERA_OK; } @@ -260,7 +260,7 @@ int32_t DCameraSinkController::PullUpPage() int32_t DCameraSinkController::CloseChannel() { - DHLOGI("CloseChannel dhId: %s", GetAnonyString(dhId_).c_str()); + DHLOGI("DCameraSinkController CloseChannel Start, dhId: %s", GetAnonyString(dhId_).c_str()); std::lock_guard autoLock(channelLock_); DCameraLowLatency::GetInstance().DisableLowLatency(); DCameraSinkServiceIpc::GetInstance().DeleteSourceRemoteCamSrv(srcDevId_); @@ -287,7 +287,7 @@ int32_t DCameraSinkController::CloseChannel() } } isPageStatus_.store(false); - DHLOGI("CloseChannel %s success", GetAnonyString(dhId_).c_str()); + DHLOGI("DCameraSinkController CloseChannel %s success", GetAnonyString(dhId_).c_str()); return DCAMERA_OK; } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp index bafc292c..666bfeaf 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp @@ -286,7 +286,7 @@ int32_t DCameraSourceController::OpenChannel(std::shared_ptr& o } std::string dhId = indexs_.begin()->dhId_; std::string devId = indexs_.begin()->devId_; - DHLOGI("OpenChannel devId: %s, dhId: %s", GetAnonyString(devId).c_str(), + DHLOGI("DCameraSourceController OpenChannel Start, devId: %s, dhId: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str()); sptr camSinkSrv = DCameraSourceServiceIpc::GetInstance().GetSinkRemoteCamSrv(devId); if (camSinkSrv == nullptr) { @@ -316,12 +316,7 @@ int32_t DCameraSourceController::OpenChannel(std::shared_ptr& o indexs.push_back(DCameraIndex(devId, dhId)); ret = channel_->CreateSession(indexs, SESSION_FLAG, DCAMERA_SESSION_MODE_CTRL, listener_); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSourceController CreateSession failed %d", ret); - return ret; - } - ret = channel_->OpenSession(); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraSourceController OpenSession failed."); + DHLOGE("DCameraSourceController Bind Socket failed,ret: %d", ret); PostChannelDisconnectedEvent(); return ret; } @@ -338,13 +333,13 @@ int32_t DCameraSourceController::CloseChannel() DCameraSoftbusLatency::GetInstance().StopSoftbusTimeSync(devId_); std::string dhId = indexs_.begin()->dhId_; std::string devId = indexs_.begin()->devId_; - DHLOGI("CloseChannel devId: %s, dhId: %s", GetAnonyString(devId).c_str(), + DHLOGI("DCameraSourceController CloseChannel Start, devId: %s, dhId: %s", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str()); int32_t ret = channel_->CloseSession(); if (ret != DCAMERA_OK) { DHLOGE("CloseSession failed %d", ret); } - DHLOGI("CloseChannel devId: %s, dhId: %s success", GetAnonyString(devId).c_str(), + DHLOGI("DCameraSourceController CloseChannel devId: %s, dhId: %s success", GetAnonyString(devId).c_str(), GetAnonyString(dhId).c_str()); channelState_ = DCAMERA_CHANNEL_STATE_DISCONNECTED; ret = channel_->ReleaseSession(); @@ -411,7 +406,6 @@ void DCameraSourceController::OnSessionState(int32_t state) case DCAMERA_CHANNEL_STATE_CONNECTED: { DcameraFinishAsyncTrace(DCAMERA_OPEN_CHANNEL_CONTROL, DCAMERA_OPEN_CHANNEL_TASKID); isChannelConnected_.store(true); - channelCond_.notify_all(); stateMachine_->UpdateState(DCAMERA_STATE_OPENED); std::shared_ptr camDev = camDev_.lock(); if (camDev == nullptr) { @@ -500,19 +494,11 @@ void DCameraSourceController::HandleMetaDataResult(std::string& jsonStr) int32_t DCameraSourceController::WaitforSessionResult(const std::string& devId) { + DHLOGI("DCameraSourceController Waiting Session Connect Start,devId: %s", GetAnonyString(devId_).c_str()); isChannelConnected_.store(false); - std::unique_lock lck(channelMtx_); - DHLOGD("wait for channel session callback notify."); - bool isChannelConnected = channelCond_.wait_for(lck, std::chrono::seconds(CHANNEL_REL_SECONDS), - [this]() { return isChannelConnected_.load(); }); - if (!isChannelConnected) { - DHLOGE("wait for channel session callback timeout(%ds).", - CHANNEL_REL_SECONDS); - PostChannelDisconnectedEvent(); - return DCAMERA_BAD_VALUE; - } DCameraLowLatency::GetInstance().EnableLowLatency(); DCameraSoftbusLatency::GetInstance().StartSoftbusTimeSync(devId); + DHLOGI("DCameraSourceController Waiting Session Connect End,devId: %s", GetAnonyString(devId_).c_str()); return DCAMERA_OK; } diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp index 948f7286..928b8e9b 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameradata/dcamera_source_input.cpp @@ -396,22 +396,6 @@ void DCameraSourceInput::PostChannelDisconnectedEvent() camDev->OnChannelDisconnectedEvent(); } -int32_t DCameraSourceInput::WaitforSessionResult() -{ - isChannelConnected_.store(false); - std::unique_lock lck(channelMtx_); - DHLOGD("wait for channel session callback notify."); - bool isChannelConnected = channelCond_.wait_for(lck, std::chrono::seconds(CHANNEL_REL_SECONDS), - [this]() { return isChannelConnected_.load(); }); - if (!isChannelConnected) { - DHLOGE("wait for channel session callback timeout(%ds).", - CHANNEL_REL_SECONDS); - PostChannelDisconnectedEvent(); - return DCAMERA_BAD_VALUE; - } - return DCAMERA_OK; -} - int32_t DCameraSourceInput::EstablishContinuousFrameSession(std::vector& indexs) { DcameraStartAsyncTrace(DCAMERA_OPEN_DATA_CONTINUE, DCAMERA_OPEN_DATA_CONTINUE_TASKID); @@ -420,26 +404,11 @@ int32_t DCameraSourceInput::EstablishContinuousFrameSession(std::vectorOpenSession(); - if (ret != DCAMERA_OK) { - DHLOGE("open session failed ret: %d,"+ - "devId: %s, dhId: %s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); PostChannelDisconnectedEvent(); DcameraFinishAsyncTrace(DCAMERA_OPEN_DATA_CONTINUE, DCAMERA_OPEN_DATA_CONTINUE_TASKID); return ret; } - - ret = WaitforSessionResult(); - if (ret != DCAMERA_OK) { - DHLOGE("waitfor session result failed ret: %d,"+ - "devId: %s, dhId: %s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); - DcameraFinishAsyncTrace(DCAMERA_OPEN_DATA_CONTINUE, DCAMERA_OPEN_DATA_CONTINUE_TASKID); - return ret; - } + isChannelConnected_.store(false); DcameraFinishAsyncTrace(DCAMERA_OPEN_DATA_CONTINUE, DCAMERA_OPEN_DATA_CONTINUE_TASKID); return DCAMERA_OK; } @@ -452,26 +421,11 @@ int32_t DCameraSourceInput::EstablishSnapshotFrameSession(std::vectorOpenSession(); - if (ret != DCAMERA_OK) { - DHLOGE("open session failed ret: %d,"+ - "devId: %s, dhId: %s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); - PostChannelDisconnectedEvent(); - DcameraFinishAsyncTrace(DCAMERA_OPEN_DATA_SNAPSHOT, DCAMERA_OPEN_DATA_SNAPSHOT_TASKID); - return ret; - } - - ret = WaitforSessionResult(); - if (ret != DCAMERA_OK) { - DHLOGE("waitfor session result failed ret: %d,"+ - "devId: %s, dhId: %s", ret, GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); - DcameraFinishAsyncTrace(DCAMERA_OPEN_DATA_SNAPSHOT, DCAMERA_OPEN_DATA_SNAPSHOT_TASKID); - return ret; - } + isChannelConnected_.store(false); return DCAMERA_OK; } } // namespace DistributedHardware diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp index 1096d566..9776e52b 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp @@ -39,7 +39,7 @@ DCameraProviderCallbackImpl::~DCameraProviderCallbackImpl() int32_t DCameraProviderCallbackImpl::OpenSession(const DHBase& dhBase) { - DHLOGI("OpenSession devId: %s dhId: %s", GetAnonyString(devId_).c_str(), + DHLOGI("DCameraProviderCallbackImpl OpenSession Start, devId: %s dhId: %s", GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); if (!CheckDHBase(dhBase)) { DHLOGE("input is invalid"); @@ -58,6 +58,8 @@ int32_t DCameraProviderCallbackImpl::OpenSession(const DHBase& dhBase) GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); return FAILED; } + DHLOGI("DCameraProviderCallbackImpl OpenSession End, devId: %s dhId: %s", GetAnonyString(devId_).c_str(), + GetAnonyString(dhId_).c_str()); return SUCCESS; } diff --git a/services/channel/include/dcamera_channel_sink_impl.h b/services/channel/include/dcamera_channel_sink_impl.h index 16e67941..638d13ec 100644 --- a/services/channel/include/dcamera_channel_sink_impl.h +++ b/services/channel/include/dcamera_channel_sink_impl.h @@ -26,7 +26,6 @@ class DCameraChannelSinkImpl : public ICameraChannel { public: DCameraChannelSinkImpl(); ~DCameraChannelSinkImpl() override; - int32_t OpenSession() override; int32_t CloseSession() override; int32_t CreateSession(std::vector& camIndexs, std::string sessionFlag, DCameraSessionMode sessionMode, std::shared_ptr& listener) override; diff --git a/services/channel/include/dcamera_channel_source_impl.h b/services/channel/include/dcamera_channel_source_impl.h index a865ac11..1d394ed7 100644 --- a/services/channel/include/dcamera_channel_source_impl.h +++ b/services/channel/include/dcamera_channel_source_impl.h @@ -26,7 +26,6 @@ class DCameraChannelSourceImpl : public ICameraChannel { public: DCameraChannelSourceImpl(); ~DCameraChannelSourceImpl() override; - int32_t OpenSession() override; int32_t CloseSession() override; int32_t CreateSession(std::vector& camIndexs, std::string sessionFlag, DCameraSessionMode sessionMode, std::shared_ptr& listener) override; diff --git a/services/channel/include/dcamera_softbus_adapter.h b/services/channel/include/dcamera_softbus_adapter.h index c2361301..02a4649f 100644 --- a/services/channel/include/dcamera_softbus_adapter.h +++ b/services/channel/include/dcamera_softbus_adapter.h @@ -18,9 +18,13 @@ #include #include +#include #include -#include "session.h" +#include "icamera_channel.h" +#include "transport/socket.h" +#include "transport/trans_type.h" + #include "single_instance.h" #include "dcamera_softbus_session.h" @@ -36,53 +40,71 @@ class DCameraSoftbusAdapter { DECLARE_SINGLE_INSTANCE_BASE(DCameraSoftbusAdapter); public: - int32_t CreateSoftbusSessionServer(std::string sessionName, DCAMERA_CHANNEL_ROLE role); + // sink_server_Listen + int32_t CreatSoftBusSinkSocketServer(std::string mySessionName, DCAMERA_CHANNEL_ROLE role, + DCameraSessionMode sessionMode, std::string peerDevId, std::string peerSessionName); + // source_client_Bind + int32_t CreateSoftBusSourceSocketClient(std::string myDevId, std::string peerSessionName, + std::string peerDevId, DCameraSessionMode sessionMode, DCAMERA_CHANNEL_ROLE role); + int32_t DestroySoftbusSessionServer(std::string sessionName); - int32_t OpenSoftbusSession(std::string mySessName, std::string peerSessName, int32_t sessionMode, - std::string peerDevId); - int32_t CloseSoftbusSession(int32_t sessionId); - int32_t SendSofbusBytes(int32_t sessionId, std::shared_ptr& buffer); - int32_t SendSofbusStream(int32_t sessionId, std::shared_ptr& buffer); - int32_t GetLocalNetworkId(std::string& myDevId); - - int32_t OnSourceSessionOpened(int32_t sessionId, int32_t result); - void OnSourceSessionClosed(int32_t sessionId); - void OnSourceBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen); - void OnSourceMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen); - void OnSourceStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, + int32_t CloseSoftbusSession(int32_t socket); + int32_t SendSofbusBytes(int32_t socket, std::shared_ptr &buffer); + int32_t SendSofbusStream(int32_t socket, std::shared_ptr &buffer); + int32_t GetLocalNetworkId(std::string &myDevId); + + int32_t SourceOnBind(int32_t socket, PeerSocketInfo info); + void SourceOnShutDown(int32_t socket, ShutdownReason reason); + void SourceOnBytes(int32_t socket, const void *data, uint32_t dataLen); + void SourceOnMessage(int32_t socket, const void *data, uint32_t dataLen); + void SourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); - int32_t OnSinkSessionOpened(int32_t sessionId, int32_t result); - void OnSinkSessionClosed(int32_t sessionId); - void OnSinkBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen); - void OnSinkMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen); - void OnSinkStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, + int32_t SinkOnBind(int32_t socket, PeerSocketInfo info); + void SinkOnShutDown(int32_t socket, ShutdownReason reason); + void SinkOnBytes(int32_t socket, const void *data, uint32_t dataLen); + void SinkOnMessage(int32_t socket, const void *data, uint32_t dataLen); + void SinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); - int32_t ConstructSessionAttribute(int32_t sessionMode, SessionAttribute& attr); + int32_t HandleSourceStreamExt(std::shared_ptr& buffer, const StreamData *ext); + int32_t GetSinkSocketId(); + int32_t GetSourceSocketId(); public: std::map> sourceSessions_; std::map> sinkSessions_; + std::map> sinkSocketIdSessionMap_; + std::map> sourceSocketIdSessionMap_; private: DCameraSoftbusAdapter(); ~DCameraSoftbusAdapter(); - int32_t DCameraSoftbusSourceGetSession(int32_t sessionId, std::shared_ptr& session); - int32_t DCameraSoftbusSinkGetSession(int32_t sessionId, std::shared_ptr& session); - int32_t DCameraSoftbusGetSessionById(int32_t sessionId, std::shared_ptr& session); + int32_t DCameraSoftBusGetSessionByPeerSocket(int32_t socket, std::shared_ptr session, + PeerSocketInfo info); + int32_t DCameraSoftbusSourceGetSession(int32_t socket, std::shared_ptr& session); + int32_t DCameraSoftbusSinkGetSession(int32_t socket, std::shared_ptr& session); + int32_t DCameraSoftbusGetSessionById(int32_t socket, std::shared_ptr& session); private: std::mutex optLock_; const std::string PKG_NAME = "ohos.dhardware.dcamera"; static const uint32_t DCAMERA_SESSION_NAME_MAX_LEN = 128; - std::map sessListeners_; + std::map sessListeners_; std::map sessionTotal_; static const uint32_t DCAMERA_LINK_TYPE_MAX = 4; static const uint32_t DCAMERA_LINK_TYPE_INDEX_2 = 2; std::mutex idMapLock_; std::map> sessionIdMap_; + + int32_t sinkSocketId_; + int32_t sourceSocketId_; + std::map sessionModeAndDataTypeMap_; + std::mutex mySessionNamePeerDevIdLock_; + std::map peerDevIdMySessionNameMap; + std::mutex mySessionNameLock_; + std::set mySessionNameSet_; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/channel/include/dcamera_softbus_session.h b/services/channel/include/dcamera_softbus_session.h index 7117329b..3759c197 100644 --- a/services/channel/include/dcamera_softbus_session.h +++ b/services/channel/include/dcamera_softbus_session.h @@ -21,6 +21,7 @@ #include "icamera_channel.h" #include "icamera_channel_listener.h" +#include "transport/trans_type.h" namespace OHOS { namespace DistributedHardware { @@ -35,9 +36,9 @@ public: DCameraSoftbusSession(std::string myDevId, std::string mySessionName, std::string peerDevId, std::string peerSessionName, std::shared_ptr listener, DCameraSessionMode mode); ~DCameraSoftbusSession(); - int32_t OpenSession(); int32_t CloseSession(); - int32_t OnSessionOpend(int32_t sessionId, int32_t result); + int32_t OnSessionOpened(int32_t socket, PeerSocketInfo info); + int32_t RefreshSessionStatus(int32_t socket); int32_t OnSessionClose(int32_t sessionId); int32_t OnDataReceived(std::shared_ptr& buffer); int32_t SendData(DCameraSessionMode mode, std::shared_ptr& buffer); diff --git a/services/channel/include/icamera_channel.h b/services/channel/include/icamera_channel.h index ac5ef5aa..3c36b0ee 100644 --- a/services/channel/include/icamera_channel.h +++ b/services/channel/include/icamera_channel.h @@ -32,7 +32,6 @@ class ICameraChannel { public: virtual ~ICameraChannel() = default; - virtual int32_t OpenSession() = 0; virtual int32_t CloseSession() = 0; virtual int32_t CreateSession(std::vector& camIndexs, std::string sessionFlag, DCameraSessionMode sessionMode, std::shared_ptr& listener) = 0; diff --git a/services/channel/src/dcamera_channel_sink_impl.cpp b/services/channel/src/dcamera_channel_sink_impl.cpp index 32280643..2c4355be 100644 --- a/services/channel/src/dcamera_channel_sink_impl.cpp +++ b/services/channel/src/dcamera_channel_sink_impl.cpp @@ -33,31 +33,16 @@ DCameraChannelSinkImpl::~DCameraChannelSinkImpl() { } -int32_t DCameraChannelSinkImpl::OpenSession() -{ - DHLOGI("DCameraChannelSinkImpl OpenSession name: %s", mySessionName_.c_str()); - if (softbusSession_ == nullptr) { - DHLOGE("DCameraChannelSinkImpl OpenSession %s failed", mySessionName_.c_str()); - return DCAMERA_BAD_OPERATE; - } - int32_t ret = softbusSession_->OpenSession(); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl OpenSession %s ret: %d", mySessionName_.c_str(), ret); - } - - return ret; -} - int32_t DCameraChannelSinkImpl::CloseSession() { - DHLOGI("DCameraChannelSinkImpl CloseSession name: %s", mySessionName_.c_str()); + DHLOGI("DCameraChannelSinkImpl CloseSession name: %s", GetAnonyString(mySessionName_).c_str()); if (softbusSession_ == nullptr) { - DHLOGE("DCameraChannelSinkImpl CloseSession %s failed", mySessionName_.c_str()); + DHLOGE("DCameraChannelSinkImpl CloseSession %s failed", GetAnonyString(mySessionName_).c_str()); return DCAMERA_BAD_OPERATE; } int32_t ret = softbusSession_->CloseSession(); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl CloseSession %s ret: %d", mySessionName_.c_str(), ret); + DHLOGE("DCameraChannelSinkImpl CloseSession %s ret: %d", GetAnonyString(mySessionName_.c_str()), ret); } return ret; @@ -79,12 +64,12 @@ int32_t DCameraChannelSinkImpl::CreateSession(std::vector& camInde mode_ = sessionMode; std::string myDevId; DCameraSoftbusAdapter::GetInstance().GetLocalNetworkId(myDevId); - DHLOGI("DCameraChannelSinkImpl session create name: %s devId: %s", mySessionName_.c_str(), + DHLOGI("DCameraChannelSinkImpl session create name: %s devId: %s", GetAnonyString(mySessionName_).c_str(), GetAnonyString(myDevId).c_str()); int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(mySessionName_, DCAMERA_CHANNLE_ROLE_SINK); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl CreateSession %s failed, ret: %d", mySessionName_.c_str(), ret); + DHLOGE("DCameraChannelSinkImpl CreateSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), ret); return ret; } std::string peerDevId = camIndexs[0].devId_; @@ -97,14 +82,14 @@ int32_t DCameraChannelSinkImpl::CreateSession(std::vector& camInde int32_t DCameraChannelSinkImpl::ReleaseSession() { - DHLOGI("DCameraChannelSinkImpl ReleaseSession name: %s", mySessionName_.c_str()); + DHLOGI("DCameraChannelSinkImpl ReleaseSession name: %s", GetAnonyString(mySessionName_).c_str()); if (softbusSession_ == nullptr) { return DCAMERA_OK; } DCameraSoftbusAdapter::GetInstance().sinkSessions_.erase(softbusSession_->GetMySessionName()); int32_t ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(softbusSession_->GetMySessionName()); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl ReleaseSession %s failed, ret: %d", mySessionName_.c_str(), ret); + DHLOGE("DCameraChannelSinkImpl ReleaseSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), ret); } softbusSession_ = nullptr; return ret; @@ -113,12 +98,12 @@ int32_t DCameraChannelSinkImpl::ReleaseSession() int32_t DCameraChannelSinkImpl::SendData(std::shared_ptr& buffer) { if (softbusSession_ == nullptr) { - DHLOGE("DCameraChannelSinkImpl SendData %s failed", mySessionName_.c_str()); + DHLOGE("DCameraChannelSinkImpl SendData %s failed", GetAnonyString(mySessionName_).c_str()); return DCAMERA_BAD_OPERATE; } int32_t ret = softbusSession_->SendData(mode_, buffer); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl SendData %s failed, ret: %d", mySessionName_.c_str(), ret); + DHLOGE("DCameraChannelSinkImpl SendData %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), ret); } return ret; } diff --git a/services/channel/src/dcamera_channel_source_impl.cpp b/services/channel/src/dcamera_channel_source_impl.cpp index 31579d27..2bc84418 100644 --- a/services/channel/src/dcamera_channel_source_impl.cpp +++ b/services/channel/src/dcamera_channel_source_impl.cpp @@ -32,42 +32,18 @@ DCameraChannelSourceImpl::~DCameraChannelSourceImpl() { } -int32_t DCameraChannelSourceImpl::OpenSession() -{ - DHLOGI("DCameraChannelSourceImpl OpenSession name: %s", mySessionName_.c_str()); - if (softbusSessions_.empty()) { - DHLOGE("DCameraChannelSourceImpl OpenSession %s failed", mySessionName_.c_str()); - return DCAMERA_BAD_OPERATE; - } - int32_t ret = DCAMERA_OK; - for (auto iter = softbusSessions_.begin(); iter != softbusSessions_.end(); iter++) { - int32_t retOpen = (*iter)->OpenSession(); - if (retOpen != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl OpenSession %s failed, ret: %d", mySessionName_.c_str(), retOpen); - ret = DCAMERA_BAD_OPERATE; - break; - } - } - - if (ret != DCAMERA_OK) { - CloseSession(); - } - - return ret; -} - int32_t DCameraChannelSourceImpl::CloseSession() { - DHLOGI("DCameraChannelSourceImpl CloseSession name: %s", mySessionName_.c_str()); + DHLOGI("DCameraChannelSourceImpl CloseSession name: %s", GetAnonyString(mySessionName_).c_str()); if (softbusSessions_.empty()) { - DHLOGE("DCameraChannelSourceImpl CloseSession %s failed", mySessionName_.c_str()); + DHLOGE("DCameraChannelSourceImpl CloseSession %s failed", GetAnonyString(mySessionName_).c_str()); return DCAMERA_BAD_OPERATE; } int32_t ret = DCAMERA_OK; for (auto iter = softbusSessions_.begin(); iter != softbusSessions_.end(); iter++) { int32_t retOpen = (*iter)->CloseSession(); if (retOpen != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl CloseSession %s failed, ret: %d", mySessionName_.c_str(), retOpen); + DHLOGE("DCameraChannelSourceImpl CloseSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), retOpen); ret = DCAMERA_BAD_OPERATE; } } @@ -85,34 +61,39 @@ int32_t DCameraChannelSourceImpl::CreateSession(std::vector& camIn DHLOGI("DCameraChannelSourceImpl session has already create %s", sessionFlag.c_str()); return DCAMERA_OK; } + DHLOGI("DCameraChannelSourceImpl CreateSession Start, name: %s devId: %s", GetAnonyString(mySessionName_).c_str(), + GetAnonyString(myDevId).c_str()); camIndexs_.assign(camIndexs.begin(), camIndexs.end()); listener_ = listener; mySessionName_ = SESSION_HEAD + sessionFlag; mode_ = sessionMode; std::string myDevId; DCameraSoftbusAdapter::GetInstance().GetLocalNetworkId(myDevId); - DHLOGI("DCameraChannelSourceImpl session create name: %s devId: %s", mySessionName_.c_str(), - GetAnonyString(myDevId).c_str()); - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(mySessionName_, - DCAMERA_CHANNLE_ROLE_SOURCE); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl CreateSession %s failed, ret: %d", mySessionName_.c_str(), ret); - return ret; - } for (auto iter = camIndexs.begin(); iter != camIndexs.end(); iter++) { std::string peerDevId = (*iter).devId_; std::string peerSessionName = SESSION_HEAD + (*iter).dhId_ + std::string("_") + sessionFlag; + // source_bind + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessionName, + peerDevId, sessionMode, DCAMERA_CHANNLE_ROLE_SOURCE); + if (ret != DECAMERA_OK) { + DHLOGE("DCameraChannelSourceImpl CreateSession failed, ret: %d", ret); + return ret; + } + int32_t sourceSocket = DCameraSoftbusAdapter::GetInstance().GetSourceSocketId(); std::shared_ptr softbusSess = std::make_shared(myDevId, mySessionName_, peerDevId, peerSessionName, listener, sessionMode); + DCameraSoftbusAdapter::GetInstance().sourceSocketIdSessionMap_[sourceSocket] = softbusSess; + softbusSess->RefreshSessionStatus(sourceSocket); softbusSessions_.push_back(softbusSess); DCameraSoftbusAdapter::GetInstance().sourceSessions_[peerDevId + peerSessionName] = softbusSess; } + DHLOGI("DCameraChannelSourceImpl CreateSession End"); return DCAMERA_OK; } int32_t DCameraChannelSourceImpl::ReleaseSession() { - DHLOGI("DCameraChannelSourceImpl ReleaseSession name: %s", mySessionName_.c_str()); + DHLOGI("DCameraChannelSourceImpl ReleaseSession name: %s", GetAnonyString(mySessionName_).c_str()); for (auto iter = softbusSessions_.begin(); iter != softbusSessions_.end(); iter++) { std::string sessKey = (*iter)->GetPeerDevId() + (*iter)->GetPeerSessionName(); DCameraSoftbusAdapter::GetInstance().sourceSessions_.erase(sessKey); @@ -120,7 +101,8 @@ int32_t DCameraChannelSourceImpl::ReleaseSession() std::vector>().swap(softbusSessions_); int32_t ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(mySessionName_); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl ReleaseSession %s failed, ret: %d", mySessionName_.c_str(), ret); + DHLOGE("DCameraChannelSourceImpl ReleaseSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), + ret); } return ret; } @@ -128,14 +110,15 @@ int32_t DCameraChannelSourceImpl::ReleaseSession() int32_t DCameraChannelSourceImpl::SendData(std::shared_ptr& buffer) { if (softbusSessions_.empty()) { - DHLOGE("DCameraChannelSourceImpl SendData %s failed", mySessionName_.c_str()); + DHLOGE("DCameraChannelSourceImpl SendData %s failed", GetAnonyString(mySessionName_).c_str()); return DCAMERA_BAD_OPERATE; } int32_t ret = DCAMERA_OK; for (auto iter = softbusSessions_.begin(); iter != softbusSessions_.end(); iter++) { int32_t retSend = (*iter)->SendData(mode_, buffer); if (retSend != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl SendData %s failed, ret: %d", mySessionName_.c_str(), retSend); + DHLOGE("DCameraChannelSourceImpl SendData %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), + retSend); ret = DCAMERA_BAD_OPERATE; } } diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 5108d4c0..81efbec1 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -31,82 +31,88 @@ namespace OHOS { namespace DistributedHardware { IMPLEMENT_SINGLE_INSTANCE(DCameraSoftbusAdapter); -static int32_t DCameraSourceOnSessionOpend(int32_t sessionId, int32_t result) +static void DCameraSourceOnBind(int32_t socket, PeerSocketInfo info) { - return DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + return; } -static void DCameraSourceOnSessionClosed(int32_t sessionId) +static void DCameraSourceOnShutDown(int32_t socket, ShutdownReason reason) { - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(socket, reason); return; } -static void DCameraSourceOnBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen) +static void DCameraSourceOnBytes(int32_t socket, const void *data, uint32_t dataLen) { - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(socket, data, dataLen); return; } -static void DCameraSourceOnMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen) +static void DCameraSourceOnMessage(int32_t socket, const void *data, uint32_t dataLen) { - DCameraSoftbusAdapter::GetInstance().OnSourceMessageReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnMessage(socket, data, dataLen); return; } -static void DCameraSourceOnStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) +static void DCameraSourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, + const StreamFrameInfo *param) { - DCameraSoftbusAdapter::GetInstance().OnSourceStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SourceOnStream(socket, data, ext, param); return; } -static int32_t DCameraSinkOnSessionOpend(int32_t sessionId, int32_t result) +// sink +static void DCameraSinkOnBind(int32_t socket, PeerSocketInfo info) { - return DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + DCameraSoftbusAdapter::GetInstance().SinkOnBind(socket, info); + return; } -static void DCameraSinkOnSessionClosed(int32_t sessionId) +static void DCameraSinkOnShutDown(int32_t socket, ShutdownReason reason) { - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(socket, reason); return; } -static void DCameraSinkOnBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen) +static void DCameraSinkOnBytes(int32_t socket, const void *data, uint32_t dataLen) { - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(socket, data, dataLen); return; } -static void DCameraSinkOnMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen) +static void DCameraSinkOnMessage(int32_t socket, const void *data, uint32_t dataLen) { - DCameraSoftbusAdapter::GetInstance().OnSinkMessageReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnMessage(socket, data, dataLen); return; } -static void DCameraSinkOnStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) +static void DCameraSinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, + const StreamFrameInfo *param) { - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(socket, data, ext, param); return; } DCameraSoftbusAdapter::DCameraSoftbusAdapter() { - ISessionListener sourceListener; - sourceListener.OnSessionOpened = DCameraSourceOnSessionOpend; - sourceListener.OnSessionClosed = DCameraSourceOnSessionClosed; - sourceListener.OnBytesReceived = DCameraSourceOnBytesReceived; - sourceListener.OnMessageReceived = DCameraSourceOnMessageReceived; - sourceListener.OnStreamReceived = DCameraSourceOnStreamReceived; + sessionModeAndDataTypeMap_[DCAMERA_SESSION_MODE_CTRL] = TransDataType::DATA_TYPE_BYTES; + sessionModeAndDataTypeMap_[DCAMERA_SESSION_MODE_VIDEO] = TransDataType::DATA_TYPE_VIDEO_STREAM; + sessionModeAndDataTypeMap_[DCAMERA_SESSION_MODE_JPEG] = TransDataType::DATA_TYPE_RAW_STREAM; + + ISocketListener sourceListener; + sourceListener.OnBind = DCameraSourceOnBind; + sourceListener.OnShutdown = DCameraSourceOnShutDown; + sourceListener.OnBytes = DCameraSourceOnBytes; + sourceListener.OnMessage = DCameraSourceOnMessage; + sourceListener.OnStream = DCameraSourceOnStream; sessListeners_[DCAMERA_CHANNLE_ROLE_SOURCE] = sourceListener; - ISessionListener sinkListener; - sinkListener.OnSessionOpened = DCameraSinkOnSessionOpend; - sinkListener.OnSessionClosed = DCameraSinkOnSessionClosed; - sinkListener.OnBytesReceived = DCameraSinkOnBytesReceived; - sinkListener.OnMessageReceived = DCameraSinkOnMessageReceived; - sinkListener.OnStreamReceived = DCameraSinkOnStreamReceived; + ISocketListener sinkListener; + sinkListener.OnBind = DCameraSinkOnBind; + sinkListener.OnShutdown = DCameraSinkOnShutDown; + sinkListener.OnBytes = DCameraSinkOnBytes; + sinkListener.OnMessage = DCameraSinkOnMessage; + sinkListener.OnStream = DCameraSinkOnStream; sessListeners_[DCAMERA_CHANNLE_ROLE_SINK] = sinkListener; } @@ -114,26 +120,85 @@ DCameraSoftbusAdapter::~DCameraSoftbusAdapter() { } -int32_t DCameraSoftbusAdapter::CreateSoftbusSessionServer(std::string sessionName, DCAMERA_CHANNEL_ROLE role) +int32_t DCameraSoftbusAdapter::CreatSoftBusSinkSocketServer(std::string mySessionName, DCAMERA_CHANNEL_ROLE role, + DCameraSessionMode sessionMode, std::string peerDevId, std::string peerSessionName) { - std::lock_guard autoLock(optLock_); - if (sessionTotal_.find(sessionName) != sessionTotal_.end()) { - sessionTotal_[sessionName]++; - DHLOGI("DCameraSoftbusAdapter sessionName already exist %s totalnum: %d", sessionName.c_str(), - sessionTotal_[sessionName]); - return DCAMERA_OK; + DHLOGI("CreatSoftBusSinkSocketServer start, mySessionName: %s,peerSessionName: %s", + GetAnonyString(mySessionName).c_str(), GetAnonyString(peerSessionName).c_str()); + { + std::lock_guard autoLock(mySessionNameLock_); + if (mySessionNameSet_.find(mySessionName) ==mySessionNameSet_.end()) { + mySessionNameSet_.insert(mySessionName); + } else { + DHLOGI("current mySessionName had Listened"); + return DCAMERA_OK; + } + } + QosTV qos[] = { + { .qos = QOS_TYPE_MIN_BW, .value = 160 * 1024 * 1024 }, + { .qos = QOS_TYPE_MAX_LATENCY, .value = 4000 }, + { .qos = QOS_TYPE_MIN_LATENCY, .value = 2000} + }; + SocketInfo serverSocketInfo = { + .name = (char *)mySessionName.c_str(), + .pkgName = (char *)PKG_NAME.c_str(), + .peerNetworkId = (char *)peerDevId.c_str(), + .peerName = (char *)peerSessionName.c_str(), + .dataType = sessionModeAndDataTypeMap_[sessionMode], + }; + int socketId = Socket(serverSocketInfo); + if (socketId < 0) { + DHLOGE("DCameraSoftbusAdapter CreatSoftBusSinkSocketServer Error, socket is invalid"); + return DCAMERA_BAD_VALUE; } + int ret = Listen(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListeners_[role]); + if (ret != DCAMERA_OK) { + DHLOGE("DCameraSoftbusAdapter CreatSoftBusSinkSocketServer Error"); + Shutdown(socketId); + return DCAMERA_BAD_VALUE; + } + { + std::string peerDevIdMySessionName = peerDevId + std::string("_") + mySessionName; + std::lock_guard autoLock(mySessionNamePeerDevIdLock_); + peerDevIdMySessionNameMap_[peerDevIdMySessionName] = mySessionName; + } + DHLOGI("CreatSoftBusSinkSocketServer End, mySessionName: %s, peerSessionName: %s", + GetAnonyString(mySessionName).c_str(), GetAnonyString(peerSessionName).c_str()); + return DCAMERA_OK; +} - int32_t ret = CreateSessionServer(PKG_NAME.c_str(), sessionName.c_str(), &sessListeners_[role]); +int32_t DCameraSoftbusAdapter::CreateSoftBusSourceSocketClient(std::string myDevId, std::string peerSessionName, + std::string peerDevId, DCameraSessionMode sessionMode, DCAMERA_CHANNEL_ROLE role) +{ + DHLOGI("CreateSoftBusSourceSocketClient start, myDevId: %s, peerSessionName: %s", + GetAnonyString(myDevId).c_str(), GetAnonyString(peerSessionName).c_str()); + QosTV qos[] = { + { .qos = QOS_TYPE_MIN_BW, .value = 160 * 1024 * 1024 }, + { .qos = QOS_TYPE_MAX_LATENCY, .value = 4000 }, + { .qos = QOS_TYPE_MIN_LATENCY, .value = 2000} + }; + std::string myDevIdPeerSessionName = myDevId + std::string("_") + peerSessionName; + SocketInfo clientSocketInfo = { + .name = (char *)myDevIdPeerSessionName.c_str(), + .pkgName = (char *)PKG_NAME.c_str(), + .peerNetworkId = (char *)peerDevId.c_str(), + .peerName = (char *)peerSessionName.c_str(), + .dataType = sessionModeAndDataTypeMap_[sessionMode], + }; + int socketId = Socket(clientSocketInfo); + if (socketId < 0) { + DHLOGE("DCameraSoftbusAdapter CreateSoftBusSourceSocketClient Error, socket is invalid"); + return DCAMERA_BAD_VALUE; + } + int ret = Bind(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListeners_[role]); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter CreateSessionServer failed, ret: %d", ret); - ReportDcamerOptFail(DCAMERA_OPT_FAIL, DCAMERA_CREATE_SESSIONSVR_ERROR, - CreateMsg("create session server failed, sessionName: %s", sessionName.c_str())); - return ret; + DHLOGE("DCameraSoftbusAdapter CreateSoftBusSourceSocketClient Error"); + Shutdown(socketId); + return DCAMERA_BAD_VALUE; } - sessionTotal_[sessionName]++; - DHLOGI("DCameraSoftbusAdapter sessionName create %s totalnum: %d", sessionName.c_str(), - sessionTotal_[sessionName]); + sourceSocketId_ = socketId; + DHLOGI("DCameraSoftbusAdapter CreateSoftBusSourceSocketClient End, myDevId: %s, peerSessionName: %s", + GetAnonyString(myDevId).c_str(), GetAnonyString(peerSessionName).c_str()); return DCAMERA_OK; } @@ -150,50 +215,31 @@ int32_t DCameraSoftbusAdapter::DestroySoftbusSessionServer(std::string sessionNa sessionTotal_[sessionName]); uint32_t total_ = sessionTotal_[sessionName]; if (total_ == 0) { - RemoveSessionServer(PKG_NAME.c_str(), sessionName.c_str()); sessionTotal_.erase(sessionName); } return DCAMERA_OK; } -int32_t DCameraSoftbusAdapter::OpenSoftbusSession(std::string mySessName, std::string peerSessName, - int32_t sessionMode, std::string peerDevId) +int32_t DCameraSoftbusAdapter::CloseSoftbusSession(int32_t socket) { - SessionAttribute attr = { 0 }; - int32_t ret = ConstructSessionAttribute(sessionMode, attr); - if (ret != DCAMERA_OK) { - DHLOGE("ConstructSessionAttribute failed, ret is: %d", ret); - return DCAMERA_BAD_VALUE; - } - int32_t sessionId = OpenSession(mySessName.c_str(), peerSessName.c_str(), peerDevId.c_str(), "0", &attr); - if (sessionId < 0) { - DHLOGE("DCameraSoftbusAdapter OpenSoftbusSession failed %d", sessionId); - ReportDcamerOptFail(DCAMERA_OPT_FAIL, DCAMERA_OPEN_SESSION_ERROR, - CreateMsg("open softbus session failed, mySessName: %s, peerSessName: %s, peerDevId: %s", - mySessName.c_str(), peerSessName.c_str(), peerDevId.c_str())); - return DCAMERA_BAD_OPERATE; - } - return DCAMERA_OK; -} - -int32_t DCameraSoftbusAdapter::CloseSoftbusSession(int32_t sessionId) -{ - DHLOGI("close softbus sessionId: %d", sessionId); - CloseSession(sessionId); + DHLOGI("Shutdown softbus socket start: %d", socket); + Shutdown(socket); // shutdown socket { std::lock_guard autoLock(idMapLock_); - sessionIdMap_.erase(sessionId); + sessionIdMap_.erase(socket); } - DHLOGI("close softbus sessionId: %d end", sessionId); + sinkSocketIdSessionMap_.erase(socket); + sourceSocketIdSessionMap_.erase(socket); + DHLOGI("Shutdown softbus socket: %d end", socket); return DCAMERA_OK; } -int32_t DCameraSoftbusAdapter::SendSofbusBytes(int32_t sessionId, std::shared_ptr& buffer) +int32_t DCameraSoftbusAdapter::SendSofbusBytes(int32_t socket, std::shared_ptr& buffer) { - return SendBytes(sessionId, buffer->Data(), buffer->Size()); + return SendBytes(socket, buffer->Data(), buffer->Size()); } -int32_t DCameraSoftbusAdapter::SendSofbusStream(int32_t sessionId, std::shared_ptr& buffer) +int32_t DCameraSoftbusAdapter::SendSofbusStream(int32_t socket, std::shared_ptr& buffer) { StreamData streamData = { reinterpret_cast(buffer->Data()), buffer->Size() }; int64_t timeStamp; @@ -227,7 +273,7 @@ int32_t DCameraSoftbusAdapter::SendSofbusStream(int32_t sessionId, std::shared_p sinkFrameInfo.Marshal(jsonStr); StreamData ext = { const_cast(jsonStr.c_str()), jsonStr.length() }; StreamFrameInfo param = { 0 }; - int32_t ret = SendStream(sessionId, &streamData, &ext, ¶m); + int32_t ret = SendStream(socket, &streamData, &ext, ¶m); if (ret != SOFTBUS_OK) { DHLOGD("SendSofbusStream failed, ret is %d", ret); return DCAMERA_BAD_VALUE; @@ -249,121 +295,112 @@ int32_t DCameraSoftbusAdapter::DCameraSoftbusGetSessionById(int32_t sessionId, return DCAMERA_OK; } -int32_t DCameraSoftbusAdapter::DCameraSoftbusSourceGetSession(int32_t sessionId, +int32_t DCameraSoftbusAdapter::DCameraSoftbusSourceGetSession(int32_t socket, std::shared_ptr& session) { - char peerSessionName[DCAMERA_SESSION_NAME_MAX_LEN] = ""; - char peerDevId[NETWORK_ID_BUF_LEN] = ""; - int32_t ret = GetPeerSessionName(sessionId, peerSessionName, sizeof(peerSessionName)); - if (ret != DCAMERA_OK) { - DHLOGI("DCameraSoftbusAdapter DCameraSoftbusSourceGetSession sessionId: %d GetPeerSessionName failed: %d", - sessionId, ret); - return ret; - } - - ret = GetPeerDeviceId(sessionId, peerDevId, sizeof(peerDevId)); - if (ret != DCAMERA_OK) { - DHLOGI("DCameraSoftbusAdapter DCameraSoftbusSourceGetSession sessionId: %d GetPeerDeviceId failed: %d", - sessionId, ret); - return ret; - } - - auto iter = sourceSessions_.find(std::string(peerDevId) + std::string(peerSessionName)); - if (iter == sourceSessions_.end()) { - DHLOGE("DCameraSoftbusAdapter DCameraSoftbusSourceGetSession not find session %d", sessionId); + auto iter = sourceSocketIdSessionMap_.find(socket); + if (iter == sourceSocketIdSessionMap_.end) { + DHLOGE("DCameraSoftbusAdapter DCameraSoftbusSourceGetSession can not find socket %d", socket); return DCAMERA_NOT_FOUND; } session = iter->second; - return DCAMERA_OK; + return DCAMERA_NOT_FOUND; } -int32_t DCameraSoftbusAdapter::OnSourceSessionOpened(int32_t sessionId, int32_t result) +// source +int32_t DCameraSoftbusAdapter::SourceOnBind(int32_t socket, PeerSocketInfo info) { - DHLOGI("DCameraSoftbusAdapter OnSourceSessionOpened sessionId: %d, result: %d", sessionId, result); + DHLOGI("DCameraSoftbusAdapter SourceOnBind socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSourceGetSession(sessionId, session); + // 从PeerSocketInfo取 + int32_t ret = DCameraSoftbusSourceGetSession(socket, session, info); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSourceSessionOpened not find session %d", sessionId); - return DCAMERA_NOT_FOUND; + DHLOGE("DCameraSoftbusAdapter SourceOnBind not find socket %d", socket); + return DCAMERA_OK; } - ret = session->OnSessionOpend(sessionId, result); + ret = session->OnSessionOpened(socket, info); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSourceSessionOpened failed %d sessionId: %d", ret, sessionId); + DHLOGE("DCameraSoftbusAdapter SourceOnBind failed %d socket: %d", ret, socket); } else { std::lock_guard autoLock(idMapLock_); - sessionIdMap_.emplace(sessionId, session); + sessionIdMap_.emplace(socket, session); } - DHLOGI("DCameraSoftbusAdapter OnSourceSessionOpened sessionId: %d, result: %d end", sessionId, result); + DHLOGI("DCameraSoftbusAdapter SourceOnBind socket: %d end", socket); return ret; } -void DCameraSoftbusAdapter::OnSourceSessionClosed(int32_t sessionId) +void DCameraSoftbusAdapter::SourceOnShutDown(int32_t socket, ShutdownReason reason) { - DHLOGI("DCameraSoftbusAdapter OnSourceSessionClosed sessionId: %d", sessionId); + DHLOGI("DCameraSoftbusAdapter SourceOnShutDown start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusGetSessionById(sessionId, session); + int32_t ret = DCameraSoftbusGetSessionById(socket, session); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSourceSessionClosed not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SourceOnShutDown not find socket %d", socket); return; } { std::lock_guard autoLock(idMapLock_); - sessionIdMap_.erase(sessionId); + sessionIdMap_.erase(socket); } - session->OnSessionClose(sessionId); - DHLOGI("DCameraSoftbusAdapter OnSourceSessionClosed sessionId: %d end", sessionId); + session->OnSessionClose(socket); + DHLOGI("DCameraSoftbusAdapter SourceOnShutDown end socket: %d end", socket); return; } -void DCameraSoftbusAdapter::OnSourceBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen) +void DCameraSoftbusAdapter::SourceOnBytes(int32_t socket, const void *data, uint32_t dataLen) { if (dataLen == 0 || dataLen > DCAMERA_MAX_RECV_DATA_LEN || data == nullptr) { - DHLOGE("DCameraSoftbusAdapter OnSourceBytesReceived dataLen: %d, sessionId: %d", dataLen, sessionId); + DHLOGE("DCameraSoftbusAdapter SourceOnBytes dataLen: %d, socket: %d", dataLen, socket); return; } + DHLOGI("DCameraSoftbusAdapter SourceOnBytes Start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSourceGetSession(sessionId, session); + // // 从PeerSocketInfo取 + PeerSocketInfo peerSocketInfo; + int32_t ret = DCameraSoftbusSourceGetSession(socket, session, peerSocketInfo); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSourceBytesReceived not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SourceOnBytes not find session %d", socket); return; } std::shared_ptr buffer = std::make_shared(dataLen); ret = memcpy_s(buffer->Data(), buffer->Capacity(), data, dataLen); if (ret != EOK) { - DHLOGE("DCameraSoftbusAdapter OnSourceBytesReceived memcpy_s failed ret: %d", ret); + DHLOGE("DCameraSoftbusAdapter SourceOnBytes memcpy_s failed ret: %d", ret); return; } session->OnDataReceived(buffer); + DHLOGI("DCameraSoftbusAdapter SourceOnBytes end socket: %d", socket); return; } -void DCameraSoftbusAdapter::OnSourceMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen) +void DCameraSoftbusAdapter::SourceOnMessage(int32_t socket, const void *data, uint32_t dataLen) { - (void)sessionId; + (void)socket; (void)data; (void)dataLen; return; } -void DCameraSoftbusAdapter::OnSourceStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) +void DCameraSoftbusAdapter::SourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, + const StreamFrameInfo *param) { int64_t recvT = GetNowTimeStampUs(); if (data == nullptr) { - DHLOGE("DCameraSoftbusAdapter::OnSourceStreamReceived, data is null, sessionId: %d.", sessionId); + DHLOGE("DCameraSoftbusAdapter::OnSourceStreamReceived, data is null, socket: %d.", socket); return; } + DHLOGI("DCameraSoftbusAdapter SourceOnStream Start socket: %d", socket); int32_t dataLen = data->bufLen; if (dataLen <= 0 || dataLen > static_cast(DCAMERA_MAX_RECV_DATA_LEN)) { - DHLOGE("DCameraSoftbusAdapter OnSourceStreamReceived dataLen: %d, sessionId: %d", dataLen, sessionId); + DHLOGE("DCameraSoftbusAdapter OnSourceStreamReceived dataLen: %d, socket: %d", dataLen, socket); return; } std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSourceGetSession(sessionId, session); + int32_t ret = DCameraSoftbusSourceGetSession(socket, session); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSourceStreamReceived not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter OnSourceStreamReceived not find socket %d", socket); return; } @@ -379,6 +416,7 @@ void DCameraSoftbusAdapter::OnSourceStreamReceived(int32_t sessionId, const Stre DHLOGE("Handle source stream ext failed, ret is: %d", ret); } session->OnDataReceived(buffer); + DHLOGI("DCameraSoftbusAdapter SourceOnStream End socket: %d", socket); } int32_t DCameraSoftbusAdapter::HandleSourceStreamExt(std::shared_ptr& buffer, const StreamData *ext) @@ -417,118 +455,149 @@ int32_t DCameraSoftbusAdapter::HandleSourceStreamExt(std::shared_ptr return DCAMERA_OK; } -int32_t DCameraSoftbusAdapter::DCameraSoftbusSinkGetSession(int32_t sessionId, +int32_t DCameraSoftbusAdapter::GetSinkSocketId() +{ + return sinkSocketId_; +} + +int32_t DCameraSoftbusAdapter::GetSourceSocketId() +{ + return sourceSocketId_; +} + +int32_t DCameraSoftbusAdapter::DCameraSoftbusSinkGetSession(int32_t socket, std::shared_ptr& session) { - char mySessionName[DCAMERA_SESSION_NAME_MAX_LEN] = ""; - int ret = GetMySessionName(sessionId, mySessionName, sizeof(mySessionName)); - if (ret != DCAMERA_OK) { - DHLOGI("DCameraSoftbusAdapter DCameraSoftbusSinkGetSession sessionId: %d GetPeerSessionName failed: %d", - sessionId, ret); - return ret; + DHLOGI("DCameraSoftbusAdapter DCameraSoftbusSinkGetSession Start, socket: %d", socket); + auto iter = sinkSocketIdSessionMap_.find(socket); + if (iter == sinkSocketIdSessionMap_.end()) { + DHLOGE("DCameraSoftbusAdapter DCameraSoftbusSinkGetSession can not find socket %d", socket); + return DCAMERA_NOT_FOUND; } + session = iter->second; + DHLOGI("DCameraSoftbusAdapter DCameraSoftbusSinkGetSession End, socket: %d", socket); + return DCAMERA_OK; +} +int32_t DCameraSoftbusAdapter::DCameraSoftBusGetSessionByPeerSocket(int32_t socket, + std::shared_ptr& session, PeerSocketInfo info) +{ + DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket Start, socket %d", socket); + std::string mySessionName = ""; + auto sessionNameIter = peerDevIdMySessionNameMap_.find(info.name); + if (sessionNameIter == peerDevIdMySessionNameMap_.end()) { + DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket error, socket %d", socket); + return DCAMERA_NOT_FOUND; + } + mySessionName = sessionNameIter->second; auto iter = sinkSessions_.find(std::string(mySessionName)); if (iter == sinkSessions_.end()) { - DHLOGE("DCameraSoftbusAdapter DCameraSoftbusSinkGetSession not find session %d", sessionId); + DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket error, mySessionName %s", + GetAnonyString(mySessionName).c_str()); return DCAMERA_NOT_FOUND; } session = iter->second; - return DCAMERA_OK; + sinkSocketIdSessionMap_[socket] = session; + DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket End, socket %d", socket); } -int32_t DCameraSoftbusAdapter::OnSinkSessionOpened(int32_t sessionId, int32_t result) +// sink +int32_t DCameraSoftbusAdapter::SinkOnBind(int32_t socket, PeerSocketInfo info) { - DHLOGI("DCameraSoftbusAdapter OnSinkSessionOpened sessionId: %d, result: %d", sessionId, result); + DHLOGI("DCameraSoftbusAdapter SinkOnBind Start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSinkGetSession(sessionId, session); + int32_t ret = DCameraSoftBusGetSessionByPeerSocket(socket, session, socketInfo); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSinkSessionOpened not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnBind not find socket %d", socket); return DCAMERA_NOT_FOUND; } - ret = session->OnSessionOpend(sessionId, result); + ret = session->OnSessionOpened(socket, info); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSinkSessionOpened not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnBind not find socket %d", socket); } else { std::lock_guard autoLock(idMapLock_); - sessionIdMap_.emplace(sessionId, session); + sessionIdMap_.emplace(socket, session); } - DHLOGI("DCameraSoftbusAdapter OnSinkSessionOpened sessionId: %d, result: %d end", sessionId, result); + DHLOGI("DCameraSoftbusAdapter SinkOnBind End socket: %d", socket); return ret; } -void DCameraSoftbusAdapter::OnSinkSessionClosed(int32_t sessionId) +void DCameraSoftbusAdapter::SinkOnShutDown(int32_t socket, ShutdownReason reason) { - DHLOGI("DCameraSoftbusAdapter OnSinkSessionClosed sessionId: %d", sessionId); + DHLOGI("DCameraSoftbusAdapter SinkOnShutDown Start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusGetSessionById(sessionId, session); + int32_t ret = DCameraSoftbusGetSessionById(socket, session); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSinkSessionClosed not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnShutDown not find session %d", socket); return; } { std::lock_guard autoLock(idMapLock_); - sessionIdMap_.erase(sessionId); + sessionIdMap_.erase(socket); } - session->OnSessionClose(sessionId); + session->OnSessionClose(socket); + DHLOGI("DCameraSoftbusAdapter SinkOnShutDown End socket: %d", socket); return; } -void DCameraSoftbusAdapter::OnSinkBytesReceived(int32_t sessionId, const void *data, uint32_t dataLen) +void DCameraSoftbusAdapter::SinkOnBytes(int32_t socket, const void *data, uint32_t dataLen) { if (dataLen == 0 || dataLen > DCAMERA_MAX_RECV_DATA_LEN || data == nullptr) { - DHLOGE("DCameraSoftbusAdapter OnSinkBytesReceived dataLen: %d, sessionId: %d", dataLen, sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnBytes dataLen: %d, socket: %d", dataLen, socket); return; } + DHLOGI("DCameraSoftbusAdapter SinkOnBytes Start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSinkGetSession(sessionId, session); + int32_t ret = DCameraSoftbusSinkGetSession(socket, session); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSinkBytesReceived not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnBytes not find session %d", socket); return; } - std::shared_ptr buffer = std::make_shared(dataLen); ret = memcpy_s(buffer->Data(), buffer->Capacity(), data, dataLen); if (ret != EOK) { - DHLOGE("DCameraSoftbusAdapter OnSinkBytesReceived memcpy_s failed ret: %d", ret); + DHLOGE("DCameraSoftbusAdapter SinkOnBytes memcpy_s failed ret: %d", ret); return; } session->OnDataReceived(buffer); + DHLOGI("DCameraSoftbusAdapter SinkOnBytes End socket: %d", socket); return; } -void DCameraSoftbusAdapter::OnSinkMessageReceived(int32_t sessionId, const void *data, uint32_t dataLen) +void DCameraSoftbusAdapter::SinkOnMessage(int32_t socket, const void *data, uint32_t dataLen) { return; } -void DCameraSoftbusAdapter::OnSinkStreamReceived(int32_t sessionId, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) +void DCameraSoftbusAdapter::SinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, + const StreamFrameInfo *param) { if (data == nullptr) { - DHLOGE("DCameraSoftbusAdapter::OnSinkStreamReceived, data is null, sessionId: %d.", sessionId); + DHLOGE("DCameraSoftbusAdapter::SinkOnStream, data is null, socket: %d.", socket); return; } + DHLOGI("DCameraSoftbusAdapter SinkOnStream Start socket: %d", socket); int32_t dataLen = data->bufLen; if (dataLen <= 0 || dataLen > static_cast(DCAMERA_MAX_RECV_DATA_LEN)) { - DHLOGE("DCameraSoftbusAdapter OnSinkStreamReceived dataLen: %d sessionId: %d", dataLen, sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnStream dataLen: %d socket: %d", dataLen, socket); return; } std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftbusSinkGetSession(sessionId, session); + int32_t ret = DCameraSoftbusSinkGetSession(socket, session); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusAdapter OnSinkStreamReceived not find session %d", sessionId); + DHLOGE("DCameraSoftbusAdapter SinkOnStream not find session %d", socket); return; } std::shared_ptr buffer = std::make_shared(data->bufLen); ret = memcpy_s(buffer->Data(), buffer->Capacity(), reinterpret_cast(data->buf), data->bufLen); if (ret != EOK) { - DHLOGE("DCameraSoftbusAdapter OnSinkStreamReceived memcpy_s failed ret: %d", ret); + DHLOGE("DCameraSoftbusAdapter SinkOnStream memcpy_s failed ret: %d", ret); return; } session->OnDataReceived(buffer); + DHLOGI("DCameraSoftbusAdapter SinkOnStream End socket: %d", socket); return; } @@ -544,46 +613,5 @@ int32_t DCameraSoftbusAdapter::GetLocalNetworkId(std::string& myDevId) myDevId = std::string(basicInfo.networkId); return DCAMERA_OK; } - -int32_t DCameraSoftbusAdapter::ConstructSessionAttribute(int32_t sessionMode, SessionAttribute& attr) -{ - int dataType = TYPE_STREAM; - int streamType = INVALID; - switch (sessionMode) { - case DCAMERA_SESSION_MODE_CTRL: - dataType = TYPE_BYTES; - break; - case DCAMERA_SESSION_MODE_VIDEO: - streamType = COMMON_VIDEO_STREAM; - break; - case DCAMERA_SESSION_MODE_JPEG: - streamType = RAW_STREAM; - break; - default: - DHLOGE("Bad sessionMode %d", sessionMode); - return DCAMERA_BAD_VALUE; - } - attr.dataType = dataType; - attr.linkTypeNum = DCAMERA_LINK_TYPE_MAX; - LinkType linkTypeList[DCAMERA_LINK_TYPE_MAX] = { - LINK_TYPE_WIFI_P2P, - LINK_TYPE_WIFI_WLAN_5G, - LINK_TYPE_WIFI_WLAN_2G, - LINK_TYPE_BR, - }; - - if (dataType == TYPE_BYTES && (DCAMERA_LINK_TYPE_INDEX_2 < DCAMERA_LINK_TYPE_MAX)) { - linkTypeList[0] = LINK_TYPE_WIFI_WLAN_2G; - linkTypeList[DCAMERA_LINK_TYPE_INDEX_2] = LINK_TYPE_WIFI_P2P; - } - int32_t ret = memcpy_s(attr.linkType, DCAMERA_LINK_TYPE_MAX * sizeof(LinkType), linkTypeList, - DCAMERA_LINK_TYPE_MAX * sizeof(LinkType)); - if (ret != EOK) { - DHLOGE("LinkType memcpy_s failed %d", ret); - return DCAMERA_BAD_VALUE; - } - attr.attr.streamAttr.streamType = streamType; - return DCAMERA_OK; -} } // namespace DistributedHardware } // namespace OHOS diff --git a/services/channel/src/dcamera_softbus_session.cpp b/services/channel/src/dcamera_softbus_session.cpp index 9e8f8fd5..6bad3129 100644 --- a/services/channel/src/dcamera_softbus_session.cpp +++ b/services/channel/src/dcamera_softbus_session.cpp @@ -60,22 +60,6 @@ DCameraSoftbusSession::~DCameraSoftbusSession() eventHandler_ = nullptr; } -int32_t DCameraSoftbusSession::OpenSession() -{ - DHLOGI("DCameraSoftbusSession OpenSession peerDevId: %s peerSessionName: %s", - GetAnonyString(peerDevId_).c_str(), GetAnonyString(peerSessionName_).c_str()); - int32_t ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessionName_, peerSessionName_, mode_, - peerDevId_); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraSoftbusSession OpenSession failed, ret: %d, peerDevId: %s peerSessionName: %s", ret, - GetAnonyString(peerDevId_).c_str(), GetAnonyString(peerSessionName_).c_str()); - return ret; - } - - listener_->OnSessionState(DCAMERA_CHANNEL_STATE_CONNECTING); - return DCAMERA_OK; -} - int32_t DCameraSoftbusSession::CloseSession() { DHLOGI("DCameraSoftbusSession CloseSession sessionId: %d peerDevId: %s peerSessionName: %s", sessionId_, @@ -97,22 +81,32 @@ int32_t DCameraSoftbusSession::CloseSession() return DCAMERA_OK; } -int32_t DCameraSoftbusSession::OnSessionOpend(int32_t sessionId, int32_t result) +int32_t DCameraSoftbusSession::OnSessionOpened(int32_t socket, PeerSocketInfo info) { - DHLOGI("DCameraSoftbusSession OnSessionOpend sessionId: %d result: %d peerDevId: %s peerSessionName: %s", - sessionId, result, GetAnonyString(peerDevId_).c_str(), GetAnonyString(peerSessionName_).c_str()); - if (result != DCAMERA_OK) { - DHLOGE("DCameraSoftbusSession OnSessionOpend sessionId: %d result: %d peerDevId: %s peerSessionName: %s", - sessionId_, result, GetAnonyString(peerDevId_).c_str(), GetAnonyString(peerSessionName_).c_str()); + DHLOGI("DCameraSoftbusSession OnSessionOpened Start, socket is: %d", socket); + if (info.networkId == nullptr) { + DHLOGE("DCameraSoftbusSession OnSessionOpened error, PeerDevId is null", socket); listener_->OnSessionState(DCAMERA_CHANNEL_STATE_DISCONNECTED); listener_->OnSessionError(DCAMERA_MESSAGE, DCAMERA_EVENT_OPEN_CHANNEL_ERROR, std::string("softbus internal error")); - return result; + return DCAMERA_WRONG_STATE; } + DHLOGI("peerDevId: %s peerSessionName: %s", GetAnonyString(info.networkId).c_str(), + GetAnonyString(info.name).c_str()); + sessionId_ = socket; + state_ = DCAMERA_SOFTBUS_STATE_OPENED; + listener_->OnSessionState(DCAMERA_CHANNEL_STATE_CONNECTED); + DHLOGI("DCameraSoftbusSession OnSessionOpened End, socket: %d", socket); + return DCAMERA_OK; +} - sessionId_ = sessionId; +int32_t DCameraSoftbusSession::RefreshSessionStatus(int32_t socket) +{ + DHLOGI("DCameraSoftbusSession RefreshSessionStatus Start, socket: %d", socket); + sessionId_ = socket; state_ = DCAMERA_SOFTBUS_STATE_OPENED; listener_->OnSessionState(DCAMERA_CHANNEL_STATE_CONNECTED); + DHLOGI("DCameraSoftbusSession RefreshSessionStatus End, socket: %d", socket); return DCAMERA_OK; } diff --git a/services/channel/test/unittest/common/channel/session.h b/services/channel/test/unittest/common/channel/session.h deleted file mode 100644 index d022bf10..00000000 --- a/services/channel/test/unittest/common/channel/session.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @addtogroup Softbus - * @{ - * - * @brief Provides high-speed, secure communication between devices. - * - * This module implements unified distributed communication capability management between - * nearby devices, and provides link-independent device discovery and transmission interfaces - * to support service publishing and data transmission. - * - * @since 1.0 - * @version 1.0 - */ - -/** - * @file session.h - * - * @brief Declares unified data transmission interfaces. - * - * This file provides data transmission capabilities, including creating and removing a session server, - * opening and closing sessions, receiving data, and querying basic session information. \n - * After multiple nearby devices are discovered and networked, these interfaces can be used to - * transmit data across devices. \n - * - * @since 1.0 - * @version 1.0 - */ -#ifndef SESSION_H -#define SESSION_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif -/** - * @brief business type of session - * - * @since 1.0 - * @version 1.0 - */ -typedef enum { - TYPE_MESSAGE = 1, - TYPE_BYTES, - TYPE_FILE, - TYPE_STREAM, - TYPE_BUTT, -} SessionType; - -typedef enum { - INVALID = -1, - /* - * Send any segment of a frame each time. - */ - RAW_STREAM, - /* - * Send a whole video frame each time. - */ - COMMON_VIDEO_STREAM, - /* - * Send a whole audio frame each time. - */ - COMMON_AUDIO_STREAM, - /* - * Slice frame mode. - */ - VIDEO_SLICE_STREAM, -} StreamType; - -typedef enum { - LINK_TYPE_WIFI_WLAN_5G = 1, - LINK_TYPE_WIFI_WLAN_2G = 2, - LINK_TYPE_WIFI_P2P = 3, - LINK_TYPE_BR = 4, - LINK_TYPE_MAX = 4, -} LinkType; - -typedef struct { - /** @brief dataType{@link SessionType} */ - int dataType; - int linkTypeNum; - LinkType linkType[LINK_TYPE_MAX]; - union { - struct StreamAttr { - int streamType; - } streamAttr; - } attr; -} SessionAttribute; - -typedef struct { - char *buf; - int bufLen; -} StreamData; - -typedef struct { - int type; - int64_t value; -} TV; - -typedef struct { - int frameType; - int64_t timeStamp; - int seqNum; - int seqSubNum; - int level; - int bitMap; - int tvCount; - TV *tvList; -} FrameInfo; - -enum FrameType { - NONE, - VIDEO_I, - VIDEO_P, - VIDEO_MAX = 50, - RADIO = VIDEO_MAX + 1, - RADIO_MAX = 100, -}; -// APP should update StreamFrameInfo each time. -struct StreamFrameInfo { - uint32_t streamId = 0; - uint32_t seqNum = 0; - uint32_t level = 0; - FrameType frameType = NONE; - uint32_t timestamp = 0; - uint32_t bitrate = 0; -}; - -constexpr uint32_t DEVICE_ID_SIZE_MAX = 65; -constexpr uint32_t CHAR_ARRAY_SIZE = 100; - -typedef struct { - int (*OnSessionOpened)(int sessionId, int result); - void (*OnSessionClosed)(int sessionId); - void (*OnBytesReceived)(int sessionId, const void *data, unsigned int dataLen); - void (*OnMessageReceived)(int sessionId, const void *data, unsigned int dataLen); - void (*OnStreamReceived)(int sessionId, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param); -} ISessionListener; - -typedef struct { - int (*OnReceiveFileStarted)(int sessionId, const char *files, int fileCnt); - int (*OnReceiveFileProcess)(int sessionId, const char *firstFile, uint64_t bytesUpload, uint64_t bytesTotal); - void (*OnReceiveFileFinished)(int sessionId, const char *files, int fileCnt); - void (*OnFileTransError)(int sessionId); -} IFileReceiveListener; - -typedef struct { - int (*OnSendFileProcess)(int sessionId, uint64_t bytesUpload, uint64_t bytesTotal); - int (*OnSendFileFinished)(int sessionId, const char *firstFile); - void (*OnFileTransError)(int sessionId); -} IFileSendListener; - -int CreateSessionServer(const char *pkgName, const char *sessionName, const ISessionListener *listener); - -int RemoveSessionServer(const char *pkgName, const char *sessionName); - -int OpenSession(const char *mySessionName, const char *peerSessionName, const char *peerDeviceId, const char *groupId, - const SessionAttribute *attr); -void OpenSessionResult(void); - -void CloseSession(int sessionId); - -int SendBytes(int sessionId, const void *data, unsigned int len); - -int SendMessage(int sessionId, const void *data, unsigned int len); - -int SendStream(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); - -int GetMySessionName(int sessionId, char *sessionName, unsigned int len); - -int GetPeerSessionName(int sessionId, char *sessionName, unsigned int len); - -int GetPeerDeviceId(int sessionId, char *devId, unsigned int len); - -int GetSessionSide(int sessionId); - -int SetFileReceiveListener(const char *pkgName, const char *sessionName, const IFileReceiveListener *recvListener, - const char *rootDir); - -int SetFileSendListener(const char *pkgName, const char *sessionName, const IFileSendListener *sendListener); - -int SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt); -#ifdef __cplusplus -} -#endif -#endif // SESSION_H \ No newline at end of file -- Gitee From e42c3e557bc9fc60630d9e18c97eb309e66427b2 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Sat, 23 Dec 2023 21:01:29 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- .../channel/src/dcamera_channel_sink_impl.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/services/channel/src/dcamera_channel_sink_impl.cpp b/services/channel/src/dcamera_channel_sink_impl.cpp index 2c4355be..8941102e 100644 --- a/services/channel/src/dcamera_channel_sink_impl.cpp +++ b/services/channel/src/dcamera_channel_sink_impl.cpp @@ -58,25 +58,26 @@ int32_t DCameraChannelSinkImpl::CreateSession(std::vector& camInde DHLOGI("DCameraChannelSinkImpl session has already create %s", sessionFlag.c_str()); return DCAMERA_OK; } + DHLOGI("DCameraChannelSinkImpl CreateSession Listen Start, devId: %s", GetAnonyString(myDevId).c_str()); camIndexs_.assign(camIndexs.begin(), camIndexs.end()); listener_ = listener; mySessionName_ = SESSION_HEAD + camIndexs[0].dhId_ + std::string("_") + sessionFlag; mode_ = sessionMode; std::string myDevId; DCameraSoftbusAdapter::GetInstance().GetLocalNetworkId(myDevId); - DHLOGI("DCameraChannelSinkImpl session create name: %s devId: %s", GetAnonyString(mySessionName_).c_str(), - GetAnonyString(myDevId).c_str()); - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(mySessionName_, - DCAMERA_CHANNLE_ROLE_SINK); - if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl CreateSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), ret); - return ret; - } std::string peerDevId = camIndexs[0].devId_; std::string peerSessionName = SESSION_HEAD + sessionFlag; + // sink_server_listen + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(mySessionName_, + DCAMERA_CHANNLE_ROLE_SINK, sessionMode, peerDevId, peerSessionName); + if (ret != DECAMERA_OK) { + DHLOGE("DCameraChannelSinkImpl CreateSession Error, ret %d", ret); + return ret; + } softbusSession_ = std::make_shared(myDevId, mySessionName_, peerDevId, peerSessionName, listener, sessionMode); DCameraSoftbusAdapter::GetInstance().sinkSessions_[mySessionName_] = softbusSession_; + DHLOGI("DCameraChannelSinkImpl CreateSession Listen End, devId: %s", GetAnonyString(myDevId).c_str()); return DCAMERA_OK; } -- Gitee From 12f3204774307950b92371a24ad97a7094a56fbb Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Sun, 24 Dec 2023 19:08:52 +0800 Subject: [PATCH 03/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_channel_source_impl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/channel/src/dcamera_channel_source_impl.cpp b/services/channel/src/dcamera_channel_source_impl.cpp index 2bc84418..d947d282 100644 --- a/services/channel/src/dcamera_channel_source_impl.cpp +++ b/services/channel/src/dcamera_channel_source_impl.cpp @@ -61,14 +61,14 @@ int32_t DCameraChannelSourceImpl::CreateSession(std::vector& camIn DHLOGI("DCameraChannelSourceImpl session has already create %s", sessionFlag.c_str()); return DCAMERA_OK; } - DHLOGI("DCameraChannelSourceImpl CreateSession Start, name: %s devId: %s", GetAnonyString(mySessionName_).c_str(), - GetAnonyString(myDevId).c_str()); camIndexs_.assign(camIndexs.begin(), camIndexs.end()); listener_ = listener; mySessionName_ = SESSION_HEAD + sessionFlag; mode_ = sessionMode; std::string myDevId; DCameraSoftbusAdapter::GetInstance().GetLocalNetworkId(myDevId); + DHLOGI("DCameraChannelSourceImpl CreateSession Start, name: %s devId: %s", GetAnonyString(mySessionName_).c_str(), + GetAnonyString(myDevId).c_str()); for (auto iter = camIndexs.begin(); iter != camIndexs.end(); iter++) { std::string peerDevId = (*iter).devId_; std::string peerSessionName = SESSION_HEAD + (*iter).dhId_ + std::string("_") + sessionFlag; -- Gitee From 36418cbd2bded7f8d62d703cdd9d5ede16218c1a Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Sun, 24 Dec 2023 19:40:59 +0800 Subject: [PATCH 04/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/include/dcamera_softbus_adapter.h | 4 ++-- services/channel/src/dcamera_channel_sink_impl.cpp | 6 +++--- services/channel/src/dcamera_softbus_adapter.cpp | 13 ++++++------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/services/channel/include/dcamera_softbus_adapter.h b/services/channel/include/dcamera_softbus_adapter.h index 02a4649f..bd7758e3 100644 --- a/services/channel/include/dcamera_softbus_adapter.h +++ b/services/channel/include/dcamera_softbus_adapter.h @@ -81,7 +81,7 @@ private: DCameraSoftbusAdapter(); ~DCameraSoftbusAdapter(); - int32_t DCameraSoftBusGetSessionByPeerSocket(int32_t socket, std::shared_ptr session, + int32_t DCameraSoftBusGetSessionByPeerSocket(int32_t socket, std::shared_ptr &session, PeerSocketInfo info); int32_t DCameraSoftbusSourceGetSession(int32_t socket, std::shared_ptr& session); int32_t DCameraSoftbusSinkGetSession(int32_t socket, std::shared_ptr& session); @@ -102,7 +102,7 @@ private: int32_t sourceSocketId_; std::map sessionModeAndDataTypeMap_; std::mutex mySessionNamePeerDevIdLock_; - std::map peerDevIdMySessionNameMap; + std::map peerDevIdMySessionNameMap_; std::mutex mySessionNameLock_; std::set mySessionNameSet_; }; diff --git a/services/channel/src/dcamera_channel_sink_impl.cpp b/services/channel/src/dcamera_channel_sink_impl.cpp index 8941102e..846a33bf 100644 --- a/services/channel/src/dcamera_channel_sink_impl.cpp +++ b/services/channel/src/dcamera_channel_sink_impl.cpp @@ -42,7 +42,7 @@ int32_t DCameraChannelSinkImpl::CloseSession() } int32_t ret = softbusSession_->CloseSession(); if (ret != DCAMERA_OK) { - DHLOGE("DCameraChannelSinkImpl CloseSession %s ret: %d", GetAnonyString(mySessionName_.c_str()), ret); + DHLOGE("DCameraChannelSinkImpl CloseSession %s ret: %d", GetAnonyString(mySessionName_).c_str(), ret); } return ret; @@ -58,7 +58,6 @@ int32_t DCameraChannelSinkImpl::CreateSession(std::vector& camInde DHLOGI("DCameraChannelSinkImpl session has already create %s", sessionFlag.c_str()); return DCAMERA_OK; } - DHLOGI("DCameraChannelSinkImpl CreateSession Listen Start, devId: %s", GetAnonyString(myDevId).c_str()); camIndexs_.assign(camIndexs.begin(), camIndexs.end()); listener_ = listener; mySessionName_ = SESSION_HEAD + camIndexs[0].dhId_ + std::string("_") + sessionFlag; @@ -67,10 +66,11 @@ int32_t DCameraChannelSinkImpl::CreateSession(std::vector& camInde DCameraSoftbusAdapter::GetInstance().GetLocalNetworkId(myDevId); std::string peerDevId = camIndexs[0].devId_; std::string peerSessionName = SESSION_HEAD + sessionFlag; + DHLOGI("DCameraChannelSinkImpl CreateSession Listen Start, devId: %s", GetAnonyString(myDevId).c_str()); // sink_server_listen int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(mySessionName_, DCAMERA_CHANNLE_ROLE_SINK, sessionMode, peerDevId, peerSessionName); - if (ret != DECAMERA_OK) { + if (ret != DCAMERA_OK) { DHLOGE("DCameraChannelSinkImpl CreateSession Error, ret %d", ret); return ret; } diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 81efbec1..d8069777 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -299,7 +299,7 @@ int32_t DCameraSoftbusAdapter::DCameraSoftbusSourceGetSession(int32_t socket, std::shared_ptr& session) { auto iter = sourceSocketIdSessionMap_.find(socket); - if (iter == sourceSocketIdSessionMap_.end) { + if (iter == sourceSocketIdSessionMap_.end()) { DHLOGE("DCameraSoftbusAdapter DCameraSoftbusSourceGetSession can not find socket %d", socket); return DCAMERA_NOT_FOUND; } @@ -313,7 +313,7 @@ int32_t DCameraSoftbusAdapter::SourceOnBind(int32_t socket, PeerSocketInfo info) DHLOGI("DCameraSoftbusAdapter SourceOnBind socket: %d", socket); std::shared_ptr session = nullptr; // 从PeerSocketInfo取 - int32_t ret = DCameraSoftbusSourceGetSession(socket, session, info); + int32_t ret = DCameraSoftbusSourceGetSession(socket, session); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter SourceOnBind not find socket %d", socket); return DCAMERA_OK; @@ -356,9 +356,7 @@ void DCameraSoftbusAdapter::SourceOnBytes(int32_t socket, const void *data, uint } DHLOGI("DCameraSoftbusAdapter SourceOnBytes Start socket: %d", socket); std::shared_ptr session = nullptr; - // // 从PeerSocketInfo取 - PeerSocketInfo peerSocketInfo; - int32_t ret = DCameraSoftbusSourceGetSession(socket, session, peerSocketInfo); + int32_t ret = DCameraSoftbusSourceGetSession(socket, session); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter SourceOnBytes not find session %d", socket); return; @@ -480,7 +478,7 @@ int32_t DCameraSoftbusAdapter::DCameraSoftbusSinkGetSession(int32_t socket, } int32_t DCameraSoftbusAdapter::DCameraSoftBusGetSessionByPeerSocket(int32_t socket, - std::shared_ptr& session, PeerSocketInfo info) + std::shared_ptr &session, PeerSocketInfo info) { DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket Start, socket %d", socket); std::string mySessionName = ""; @@ -499,6 +497,7 @@ int32_t DCameraSoftbusAdapter::DCameraSoftBusGetSessionByPeerSocket(int32_t sock session = iter->second; sinkSocketIdSessionMap_[socket] = session; DHLOGI("DCameraSoftbusAdapter DCameraSoftBusGetSessionByPeerSocket End, socket %d", socket); + return DCAMERA_OK; } // sink @@ -506,7 +505,7 @@ int32_t DCameraSoftbusAdapter::SinkOnBind(int32_t socket, PeerSocketInfo info) { DHLOGI("DCameraSoftbusAdapter SinkOnBind Start socket: %d", socket); std::shared_ptr session = nullptr; - int32_t ret = DCameraSoftBusGetSessionByPeerSocket(socket, session, socketInfo); + int32_t ret = DCameraSoftBusGetSessionByPeerSocket(socket, session, info); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter SinkOnBind not find socket %d", socket); return DCAMERA_NOT_FOUND; -- Gitee From 2c2bc7db5274f4cb563cd2ee9e59c8c4eedf498e Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Sun, 24 Dec 2023 21:12:39 +0800 Subject: [PATCH 05/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index d8069777..4b6867fe 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -312,11 +312,10 @@ int32_t DCameraSoftbusAdapter::SourceOnBind(int32_t socket, PeerSocketInfo info) { DHLOGI("DCameraSoftbusAdapter SourceOnBind socket: %d", socket); std::shared_ptr session = nullptr; - // 从PeerSocketInfo取 int32_t ret = DCameraSoftbusSourceGetSession(socket, session); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter SourceOnBind not find socket %d", socket); - return DCAMERA_OK; + return DCAMERA_NOT_FOUND; } ret = session->OnSessionOpened(socket, info); -- Gitee From c59050026b7443de74c4509a8a9b730d57779e18 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 09:16:20 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_channel_source_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/channel/src/dcamera_channel_source_impl.cpp b/services/channel/src/dcamera_channel_source_impl.cpp index d947d282..9bda046a 100644 --- a/services/channel/src/dcamera_channel_source_impl.cpp +++ b/services/channel/src/dcamera_channel_source_impl.cpp @@ -75,7 +75,7 @@ int32_t DCameraChannelSourceImpl::CreateSession(std::vector& camIn // source_bind int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessionName, peerDevId, sessionMode, DCAMERA_CHANNLE_ROLE_SOURCE); - if (ret != DECAMERA_OK) { + if (ret != DCAMERA_OK) { DHLOGE("DCameraChannelSourceImpl CreateSession failed, ret: %d", ret); return ret; } -- Gitee From dcd9e4dab87aff57ecbf7f18cc5e0d29d4384ac5 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 11:31:23 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- .../softbusonsinkbytesreceived_fuzzer.cpp | 2 +- .../softbusonsinkmessagereceived_fuzzer.cpp | 2 +- .../softbusonsinksessionclosed_fuzzer.cpp | 2 +- .../softbusonsinksessionopened_fuzzer.cpp | 4 +- .../softbusonsinkstreamreceived_fuzzer.cpp | 2 +- .../softbusonsourcebytesreceived_fuzzer.cpp | 2 +- .../softbusonsourcemessagereceived_fuzzer.cpp | 2 +- .../softbusonsourcesessionclosed_fuzzer.cpp | 2 +- .../softbusonsourcesessionopened_fuzzer.cpp | 5 +- .../softbusonsourcestreamreceived_fuzzer.cpp | 2 +- .../dcameradata/dcamera_source_input.h | 1 - .../dcamera_source_input_test.cpp | 15 - .../dcamera_channel_sink_impl_test.cpp | 24 +- .../dcamera_channel_source_impl_test.cpp | 23 +- .../channel/dcamera_softbus_adapter_test.cpp | 370 +++++++----------- .../channel/dcamera_softbus_session_test.cpp | 10 +- .../unittest/common/channel/session_mock.cpp | 150 ++----- .../test/unittest/common/channel/socket.h | 316 +++++++++++++++ .../test/unittest/common/channel/trans_type.h | 202 ++++++++++ 19 files changed, 714 insertions(+), 422 deletions(-) create mode 100644 services/channel/test/unittest/common/channel/socket.h create mode 100644 services/channel/test/unittest/common/channel/trans_type.h diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkbytesreceived_fuzzer/softbusonsinkbytesreceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkbytesreceived_fuzzer/softbusonsinkbytesreceived_fuzzer.cpp index 3d1fe21e..f00e0fc7 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkbytesreceived_fuzzer/softbusonsinkbytesreceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkbytesreceived_fuzzer/softbusonsinkbytesreceived_fuzzer.cpp @@ -29,7 +29,7 @@ void SoftbusOnSinkBytesReceivedFuzzTest(const uint8_t* data, size_t size) const void *receivedData = reinterpret_cast(data); uint32_t dataLen = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, receivedData, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(sessionId, receivedData, dataLen); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkmessagereceived_fuzzer/softbusonsinkmessagereceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkmessagereceived_fuzzer/softbusonsinkmessagereceived_fuzzer.cpp index 4d8c23e6..cb189ada 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkmessagereceived_fuzzer/softbusonsinkmessagereceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkmessagereceived_fuzzer/softbusonsinkmessagereceived_fuzzer.cpp @@ -29,7 +29,7 @@ void SoftbusOnSinkMessageReceivedFuzzTest(const uint8_t* data, size_t size) const void *receivedData = reinterpret_cast(data); uint32_t dataLen = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSinkMessageReceived(sessionId, receivedData, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnMessage(sessionId, receivedData, dataLen); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionclosed_fuzzer/softbusonsinksessionclosed_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionclosed_fuzzer/softbusonsinksessionclosed_fuzzer.cpp index c8369263..faa860fd 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionclosed_fuzzer/softbusonsinksessionclosed_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionclosed_fuzzer/softbusonsinksessionclosed_fuzzer.cpp @@ -27,7 +27,7 @@ void SoftbusOnSinkSessionClosedFuzzTest(const uint8_t* data, size_t size) int32_t sessionId = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionopened_fuzzer/softbusonsinksessionopened_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionopened_fuzzer/softbusonsinksessionopened_fuzzer.cpp index d391beec..e399507e 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionopened_fuzzer/softbusonsinksessionopened_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinksessionopened_fuzzer/softbusonsinksessionopened_fuzzer.cpp @@ -26,9 +26,9 @@ void SoftbusOnSinkSessionOpenedFuzzTest(const uint8_t* data, size_t size) } int32_t sessionId = *(reinterpret_cast(data)); - int32_t result = *(reinterpret_cast(data)); + PeerSocketInfo socketInfo = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, socketInfo); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkstreamreceived_fuzzer/softbusonsinkstreamreceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkstreamreceived_fuzzer/softbusonsinkstreamreceived_fuzzer.cpp index 65f6ff0b..14ee978c 100644 --- a/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkstreamreceived_fuzzer/softbusonsinkstreamreceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sinkfuzztest/softbusonsinkstreamreceived_fuzzer/softbusonsinkstreamreceived_fuzzer.cpp @@ -39,7 +39,7 @@ void SoftbusOnSinkStreamReceivedFuzzTest(const uint8_t* data, size_t size) *(reinterpret_cast(data)), nullptr }; - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, &receivedData, &ext, ¶m); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(sessionId, &receivedData, &ext, ¶m); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcebytesreceived_fuzzer/softbusonsourcebytesreceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcebytesreceived_fuzzer/softbusonsourcebytesreceived_fuzzer.cpp index 31ae4001..96233760 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcebytesreceived_fuzzer/softbusonsourcebytesreceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcebytesreceived_fuzzer/softbusonsourcebytesreceived_fuzzer.cpp @@ -29,7 +29,7 @@ void SoftbusOnSourceBytesReceivedFuzzTest(const uint8_t* data, size_t size) const void *receivedData = reinterpret_cast(data); uint32_t dataLen = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, receivedData, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(sessionId, receivedData, dataLen); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcemessagereceived_fuzzer/softbusonsourcemessagereceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcemessagereceived_fuzzer/softbusonsourcemessagereceived_fuzzer.cpp index 2264e61b..f9cd2650 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcemessagereceived_fuzzer/softbusonsourcemessagereceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcemessagereceived_fuzzer/softbusonsourcemessagereceived_fuzzer.cpp @@ -29,7 +29,7 @@ void SoftbusOnSourceMessageReceivedFuzzTest(const uint8_t* data, size_t size) const void *receivedData = reinterpret_cast(data); uint32_t dataLen = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSourceMessageReceived(sessionId, receivedData, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnMessage(sessionId, receivedData, dataLen); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionclosed_fuzzer/softbusonsourcesessionclosed_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionclosed_fuzzer/softbusonsourcesessionclosed_fuzzer.cpp index 30d30b96..af55e9c8 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionclosed_fuzzer/softbusonsourcesessionclosed_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionclosed_fuzzer/softbusonsourcesessionclosed_fuzzer.cpp @@ -27,7 +27,7 @@ void SoftbusOnSourceSessionClosedFuzzTest(const uint8_t* data, size_t size) int32_t sessionId = *(reinterpret_cast(data)); - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionopened_fuzzer/softbusonsourcesessionopened_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionopened_fuzzer/softbusonsourcesessionopened_fuzzer.cpp index f3e96b2b..7b1aea7b 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionopened_fuzzer/softbusonsourcesessionopened_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcesessionopened_fuzzer/softbusonsourcesessionopened_fuzzer.cpp @@ -26,9 +26,8 @@ void SoftbusOnSourceSessionOpenedFuzzTest(const uint8_t* data, size_t size) } int32_t sessionId = *(reinterpret_cast(data)); - int32_t result = *(reinterpret_cast(data)); - - DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo socketInfo = *(reinterpret_cast(data)); + DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, socketInfo); } } } diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcestreamreceived_fuzzer/softbusonsourcestreamreceived_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcestreamreceived_fuzzer/softbusonsourcestreamreceived_fuzzer.cpp index 50718bad..4c766612 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcestreamreceived_fuzzer/softbusonsourcestreamreceived_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/softbusonsourcestreamreceived_fuzzer/softbusonsourcestreamreceived_fuzzer.cpp @@ -39,7 +39,7 @@ void SoftbusOnSourceStreamReceivedFuzzTest(const uint8_t* data, size_t size) *(reinterpret_cast(data)), nullptr }; - DCameraSoftbusAdapter::GetInstance().OnSourceStreamReceived(sessionId, &receivedData, &ext, ¶m); + DCameraSoftbusAdapter::GetInstance().SourceOnStream(sessionId, &receivedData, &ext, ¶m); } } } diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcameradata/dcamera_source_input.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcameradata/dcamera_source_input.h index 5de1c78c..b84e730e 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcameradata/dcamera_source_input.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcameradata/dcamera_source_input.h @@ -52,7 +52,6 @@ public: private: void FinshFrameAsyncTrace(DCStreamType streamType); void PostChannelDisconnectedEvent(); - int32_t WaitforSessionResult(); int32_t EstablishContinuousFrameSession(std::vector& indexs); int32_t EstablishSnapshotFrameSession(std::vector& indexs); diff --git a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_input_test.cpp b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_input_test.cpp index ec78df2d..1b40d056 100644 --- a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_input_test.cpp +++ b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_input_test.cpp @@ -392,21 +392,6 @@ HWTEST_F(DCameraSourceInputTest, dcamera_source_input_test_012, TestSize.Level1) EXPECT_EQ(rc, DCAMERA_OK); } -/** - * @tc.name: dcamera_source_input_test_013 - * @tc.desc: Verify source inptut WaitforSessionResult. - * @tc.type: FUNC - * @tc.require: Issue Number - */ -HWTEST_F(DCameraSourceInputTest, dcamera_source_input_test_013, TestSize.Level1) -{ - int32_t rc = camDev_->InitDCameraSourceDev(); - EXPECT_EQ(rc, DCAMERA_OK); - - rc = testInput_->WaitforSessionResult(); - EXPECT_EQ(rc, DCAMERA_BAD_VALUE); -} - /** * @tc.name: dcamera_source_input_test_014 * @tc.desc: Verify source inptut EstablishContinuousFrameSession. diff --git a/services/channel/test/unittest/common/channel/dcamera_channel_sink_impl_test.cpp b/services/channel/test/unittest/common/channel/dcamera_channel_sink_impl_test.cpp index a121a9f7..163dc110 100644 --- a/services/channel/test/unittest/common/channel/dcamera_channel_sink_impl_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_channel_sink_impl_test.cpp @@ -93,9 +93,7 @@ HWTEST_F(DCameraChannelSinkImplTest, dcamera_channel_sink_impl_test_001, TestSiz output_ = std::make_shared(TEST_CAMERA_DH_ID_0, operator_); listener_ = std::make_shared(CONTINUOUS_FRAME, output_); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); EXPECT_EQ(DCAMERA_OK, ret); } @@ -118,9 +116,7 @@ HWTEST_F(DCameraChannelSinkImplTest, dcamera_channel_sink_impl_test_002, TestSiz output_ = std::make_shared(TEST_CAMERA_DH_ID_0, operator_); listener_ = std::make_shared(CONTINUOUS_FRAME, output_); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); ret = channel_->CloseSession(); EXPECT_EQ(DCAMERA_OK, ret); } @@ -169,9 +165,7 @@ HWTEST_F(DCameraChannelSinkImplTest, dcamera_channel_sink_impl_test_004, TestSiz output_ = std::make_shared(TEST_CAMERA_DH_ID_0, operator_); listener_ = std::make_shared(CONTINUOUS_FRAME, output_); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); usleep(TEST_SLEEP_SEC); size_t capacity = 1; std::shared_ptr dataBuffer = std::make_shared(capacity); @@ -182,18 +176,6 @@ HWTEST_F(DCameraChannelSinkImplTest, dcamera_channel_sink_impl_test_004, TestSiz EXPECT_EQ(DCAMERA_OK, ret); } -/** - * @tc.name: dcamera_channel_sink_impl_test_005 - * @tc.desc: Verify the OpenSession function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraChannelSinkImplTest, dcamera_channel_sink_impl_test_005, TestSize.Level1) -{ - int32_t ret = channel_->OpenSession(); - EXPECT_EQ(DCAMERA_BAD_OPERATE, ret); -} - /** * @tc.name: dcamera_channel_sink_impl_test_006 * @tc.desc: Verify the CloseSession function. diff --git a/services/channel/test/unittest/common/channel/dcamera_channel_source_impl_test.cpp b/services/channel/test/unittest/common/channel/dcamera_channel_source_impl_test.cpp index 4b45dfa9..e377f1a7 100644 --- a/services/channel/test/unittest/common/channel/dcamera_channel_source_impl_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_channel_source_impl_test.cpp @@ -103,9 +103,7 @@ HWTEST_F(DCameraChannelSourceImplTest, dcamera_channel_source_impl_test_001, Tes input_ = std::make_shared(TEST_DEVICE_ID, TEST_CAMERA_DH_ID_0, camDev_); listener_ = std::make_shared(input_, CONTINUOUS_FRAME); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); EXPECT_EQ(DCAMERA_OK, ret); } @@ -133,9 +131,7 @@ HWTEST_F(DCameraChannelSourceImplTest, dcamera_channel_source_impl_test_002, Tes input_ = std::make_shared(TEST_DEVICE_ID, TEST_CAMERA_DH_ID_0, camDev_); listener_ = std::make_shared(input_, CONTINUOUS_FRAME); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); ret = channel_->CloseSession(); EXPECT_EQ(DCAMERA_OK, ret); } @@ -193,8 +189,7 @@ HWTEST_F(DCameraChannelSourceImplTest, dcamera_channel_source_impl_test_004, Tes input_ = std::make_shared(TEST_DEVICE_ID, TEST_CAMERA_DH_ID_0, camDev_); listener_ = std::make_shared(input_, CONTINUOUS_FRAME); - channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); - int32_t ret = channel_->OpenSession(); + int32_t ret = channel_->CreateSession(camIndexs, sessionFlag, sessionMode, listener_); size_t capacity = 1; std::shared_ptr dataBuffer = std::make_shared(capacity); ret = channel_->SendData(dataBuffer); @@ -204,18 +199,6 @@ HWTEST_F(DCameraChannelSourceImplTest, dcamera_channel_source_impl_test_004, Tes EXPECT_EQ(DCAMERA_OK, ret); } -/** - * @tc.name: dcamera_channel_source_impl_test_005 - * @tc.desc: Verify the OpenSession function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraChannelSourceImplTest, dcamera_channel_source_impl_test_005, TestSize.Level1) -{ - int32_t ret = channel_->OpenSession(); - EXPECT_EQ(DCAMERA_BAD_OPERATE, ret); -} - /** * @tc.name: dcamera_channel_source_impl_test_006 * @tc.desc: Verify the CloseSession function. diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp index 4b3f8b4b..21598cfe 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp @@ -70,8 +70,12 @@ void DCameraSoftbusAdapterTest::TearDown(void) HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_001, TestSize.Level1) { std::string sessionName = "sourcetest01"; + std::string peerSessionName = "dh_control_0"; + std::string peerDevId = "abcd"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(sessionName, role, + sessionMode, peerDevId, peerSessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -84,8 +88,12 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_001, TestSize.L HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_002, TestSize.Level1) { std::string sessionName = "sourcetest02"; + std::string peerSessionName = "dh_control_0"; + std::string peerDevId = "abcd"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(sessionName, role, + sessionMode, peerDevId, peerSessionName); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -100,12 +108,12 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_003, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(mySessName, role, + sessionMode, peerDevId, peerSessName); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -121,12 +129,12 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_004, TestSize.L { std::string sessionName = "sourcetest04"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest04"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreatSoftBusSinkSocketServer(mySessName, role, + sessionMode, peerDevId, peerSessName); int32_t sessionId = 1; ret = DCameraSoftbusAdapter::GetInstance().CloseSoftbusSession(sessionId); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); @@ -143,12 +151,13 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_005, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); size_t capacity = 1; std::shared_ptr dataBuffer = std::make_shared(capacity); int32_t sessionId = 2; @@ -167,12 +176,13 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_006, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); size_t capacity = 1; std::shared_ptr dataBuffer = std::make_shared(capacity); int32_t sessionId = 2; @@ -206,17 +216,18 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_008, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; + PeerSocketInfo info = {}; std::shared_ptr session = std::make_shared(); DCameraSoftbusAdapter::GetInstance().sourceSessions_.emplace(peerDevId + mySessName, session); - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } @@ -231,17 +242,18 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_009, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -256,19 +268,20 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_010, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); const void *data = "testdata"; uint32_t dataLen = 8; - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, data, dataLen); - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -283,19 +296,20 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_011, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); const void *data = "testdata"; uint32_t dataLen = 8; - DCameraSoftbusAdapter::GetInstance().OnSourceMessageReceived(sessionId, data, dataLen); - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnMessage(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -310,15 +324,16 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_012, TestSize.L { std::string sessionName = "sourcetest03"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); std::string buff01 = "testbuffer01"; StreamData test01; test01.buf = const_cast(buff01.c_str()); @@ -331,15 +346,15 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_012, TestSize.L StreamData *data = &test01; StreamData *ext = &test02; StreamFrameInfo *param = ¶m01; - DCameraSoftbusAdapter::GetInstance().OnSourceStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SourceOnStream(sessionId, data, ext, param); data = nullptr; - DCameraSoftbusAdapter::GetInstance().OnSourceStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SourceOnStream(sessionId, data, ext, param); StreamData test03; test01.buf = const_cast(buff01.c_str()); test01.bufLen = 0; data = &test03; - DCameraSoftbusAdapter::GetInstance().OnSourceStreamReceived(sessionId, data, ext, param); - DCameraSoftbusAdapter::GetInstance().OnSourceSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SourceOnStream(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SourceOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -354,17 +369,18 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_013, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; + PeerSocketInfo info = {}; std::shared_ptr session = std::make_shared(); DCameraSoftbusAdapter::GetInstance().sinkSessions_.emplace(peerDevId + mySessName, session); - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } @@ -378,17 +394,18 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_014, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -403,19 +420,20 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_015, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); const void *data = "testdata"; uint32_t dataLen = 8; - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, data, dataLen); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -430,19 +448,20 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_016, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); const void *data = "testdata"; uint32_t dataLen = 8; - DCameraSoftbusAdapter::GetInstance().OnSinkMessageReceived(sessionId, data, dataLen); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnMessage(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -457,15 +476,16 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_017, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); std::string buff01 = "testbuffer01"; StreamData test01; test01.buf = const_cast(buff01.c_str()); @@ -478,8 +498,8 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_017, TestSize.L const StreamData *data = &test01; const StreamData *ext = &test02; const StreamFrameInfo *param = ¶m01; - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, data, ext, param); - DCameraSoftbusAdapter::GetInstance().OnSinkSessionClosed(sessionId); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SinkOnShutDown(sessionId, ShutdownReason::SHUTDOWN_REASON_LOCAL); ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -494,16 +514,17 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_018, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; std::shared_ptr session = std::make_shared(); - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); @@ -520,16 +541,17 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_019, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; + PeerSocketInfo info = {}; std::shared_ptr session = std::make_shared(); - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSinkGetSession(sessionId, session); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); @@ -546,63 +568,23 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_020, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 2; - int32_t result = 0; + PeerSocketInfo info = {}; std::shared_ptr session = std::make_shared(); - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusGetSessionById(sessionId, session); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } -/** - * @tc.name: dcamera_softbus_adapter_test_021 - * @tc.desc: Verify the OpenSoftbusSession function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_021, TestSize.Level1) -{ - std::string sessionName = "sourcetest03"; - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - std::string mySessName = "sourcetest03"; - std::string peerSessName = "sinktest02"; - int32_t sessionMode = 1; - std::string peerDevId = TEST_DEVICE_ID; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); - EXPECT_EQ(DCAMERA_OK, ret); -} - -/** - * @tc.name: dcamera_softbus_adapter_test_022 - * @tc.desc: Verify the OpenSoftbusSession function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_022, TestSize.Level1) -{ - std::string sessionName = "sourcetest03"; - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - std::string mySessName = "sourcetest03"; - std::string peerSessName = "sinktest02"; - int32_t sessionMode = 2; - std::string peerDevId = TEST_DEVICE_ID; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - - DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); - EXPECT_EQ(DCAMERA_OK, ret); -} - /** * @tc.name: dcamera_softbus_adapter_test_023 * @tc.desc: Verify the DCameraSoftbusGetSessionById function. @@ -613,81 +595,23 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_023, TestSize.L { std::string sessionName = "sourcetest013"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest013"; std::string peerSessName = "sinktest012"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = -1; - int32_t result = 0; + PeerSocketInfo info = {}; std::shared_ptr session = std::make_shared(); - ret = DCameraSoftbusAdapter::GetInstance().OnSinkSessionOpened(sessionId, result); + ret = DCameraSoftbusAdapter::GetInstance().SinkOnBind(sessionId, info); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusGetSessionById(sessionId, session); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } -/** - * @tc.name: dcamera_softbus_adapter_test_024 - * @tc.desc: Verify the CreateSoftbusSessionServer function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_024, TestSize.Level1) -{ - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - std::string sessionName = "sourcetest024"; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - EXPECT_EQ(DCAMERA_MEMORY_OPT_ERROR, ret); -} - -/** - * @tc.name: dcamera_softbus_adapter_test_025 - * @tc.desc: Verify the DestroySoftbusSessionServer function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_025, TestSize.Level1) -{ - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - std::string sessionName = "sourcetest025"; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - sessionName = "sourcetest0025"; - DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); - sessionName = "sourcetest025"; - DCameraSoftbusAdapter::GetInstance().sessionTotal_[sessionName] = 0; - DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); - EXPECT_EQ(DCAMERA_OK, ret); -} - -/** - * @tc.name: dcamera_softbus_adapter_test_026 - * @tc.desc: Verify the DestroySoftbusSessionServer function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_026, TestSize.Level1) -{ - std::string sessionName = "sourcetest026"; - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - std::string mySessName = "sourcetest026"; - std::string peerSessName = "sinktest0026"; - int32_t sessionMode = 0; - std::string peerDevId = TEST_DEVICE_ID; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - sessionMode = 1; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - sessionMode = 2; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - sessionMode = 3; - ret = DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); - DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); - EXPECT_EQ(DCAMERA_BAD_VALUE, ret); -} - /** * @tc.name: dcamera_softbus_adapter_test_027 * @tc.desc: Verify the DCameraSoftbusSourceGetSession function. @@ -698,25 +622,24 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_027, TestSize.L { std::string sessionName = "sourcetest027"; DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); std::string mySessName = "sourcetest027"; std::string peerSessName = "sinktest0027"; - int32_t sessionMode = 0; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_CTRL; std::string peerDevId = TEST_DEVICE_ID; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); + std::string myDevId = "abcde"; + int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, + sessionMode, role); int32_t sessionId = 27; std::shared_ptr session = std::make_shared(); - int32_t result = 0; - ret = DCameraSoftbusAdapter::GetInstance().OnSourceSessionOpened(sessionId, result); + PeerSocketInfo info = {}; + ret = DCameraSoftbusAdapter::GetInstance().SourceOnBind(sessionId, info); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); EXPECT_EQ(DCAMERA_MEMORY_OPT_ERROR, ret); mySessName = "sourcetest0027"; - DCameraSoftbusAdapter::GetInstance().OpenSoftbusSession(mySessName, peerSessName, sessionMode, peerDevId); ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); EXPECT_EQ(DCAMERA_MEMORY_OPT_ERROR, ret); sessionId = 2; DCameraSoftbusAdapter::GetInstance().sourceSessions_.clear(); - ret = DCameraSoftbusAdapter::GetInstance().DCameraSoftbusSourceGetSession(sessionId, session); DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_NOT_FOUND, ret); } @@ -733,12 +656,12 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_028, TestSize.L const void *data = "testdata"; uint32_t dataLen = 0; std::string sessionName = "sourcetest028"; - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(sessionId, data, dataLen); dataLen = DCAMERA_MAX_RECV_DATA_LEN + 1; - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(sessionId, data, dataLen); dataLen = 8; data = nullptr; - DCameraSoftbusAdapter::GetInstance().OnSourceBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SourceOnBytes(sessionId, data, dataLen); int32_t ret = DCameraSoftbusAdapter::GetInstance().CloseSoftbusSession(sessionId); EXPECT_EQ(DCAMERA_OK, ret); } @@ -755,12 +678,12 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_029, TestSize.L const void *data = "testdata"; uint32_t dataLen = 0; std::string sessionName = "sourcetest029"; - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(sessionId, data, dataLen); dataLen = DCAMERA_MAX_RECV_DATA_LEN + 1; - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(sessionId, data, dataLen); data = nullptr; dataLen = 8; - DCameraSoftbusAdapter::GetInstance().OnSinkBytesReceived(sessionId, data, dataLen); + DCameraSoftbusAdapter::GetInstance().SinkOnBytes(sessionId, data, dataLen); int32_t ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } @@ -784,31 +707,16 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_030, TestSize.L StreamData *data = nullptr; StreamData *ext = &test02; StreamFrameInfo *param = ¶m01; - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(sessionId, data, ext, param); data = &test02; data->bufLen = 0; - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(sessionId, data, ext, param); data->bufLen = DCAMERA_MAX_RECV_DATA_LEN + 1; - DCameraSoftbusAdapter::GetInstance().OnSinkStreamReceived(sessionId, data, ext, param); + DCameraSoftbusAdapter::GetInstance().SinkOnStream(sessionId, data, ext, param); int32_t ret = DCameraSoftbusAdapter::GetInstance().DestroySoftbusSessionServer(sessionName); EXPECT_EQ(DCAMERA_OK, ret); } -/** - * @tc.name: dcamera_softbus_adapter_test_031 - * @tc.desc: Verify the CreateSoftbusSessionServer function. - * @tc.type: FUNC - * @tc.require: - */ -HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_031, TestSize.Level1) -{ - std::string sessionName = "sourcetest31"; - DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; - DCameraSoftbusAdapter::GetInstance().sessionTotal_[sessionName] = 1; - int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftbusSessionServer(sessionName, role); - EXPECT_EQ(DCAMERA_OK, ret); -} - /** * @tc.name: dcamera_softbus_adapter_test_032 * @tc.desc: Verify the CreateSoftbusSessionServer function. diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp index c056adc3..f4f448b7 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp @@ -110,9 +110,13 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_001, TestSize.L HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_002, TestSize.Level1) { int32_t sessionId = 1; - int32_t result = -6; - int32_t ret = softbusSession_->OnSessionOpend(sessionId, result); - EXPECT_EQ(DCAMERA_NOT_FOUND, ret); + PeerSocketInfo info = { + .name = (char *)std::string("dcamera_softbus_session_test_002").c_str(), + .pkgName = (char *)std::string("ohos.dhardware.dcamera").c_str(), + .networkId = (char *)std::string("abcd").c_str(), + }; + int32_t ret = softbusSession_->OnSessionOpened(sessionId, info); + EXPECT_EQ(DCAMERA_OK, ret); } /** diff --git a/services/channel/test/unittest/common/channel/session_mock.cpp b/services/channel/test/unittest/common/channel/session_mock.cpp index 3ef310ba..f088647f 100644 --- a/services/channel/test/unittest/common/channel/session_mock.cpp +++ b/services/channel/test/unittest/common/channel/session_mock.cpp @@ -18,163 +18,77 @@ #include #include -#include "session.h" +#include "socket.h" constexpr int32_t DH_SUCCESS = 0; -constexpr int32_t DH_ERROR = -1; -constexpr int32_t MOCK_SESSION_ID = 1; -static ISessionListener listener_; -static char g_peerDeviceId_[CHAR_ARRAY_SIZE + 1]; -static char g_peerSessionName_[CHAR_ARRAY_SIZE + 1]; -static char g_mySessionName_[CHAR_ARRAY_SIZE + 1]; -int CreateSessionServer(const char *pkgName, const char *sessionName, const ISessionListener *listener) +int Socket(SocketInfo info) { - (void)pkgName; - std::cout << "CreateSessionServer start sessionName:" << sessionName << std::endl; - std::string tmpstr = sessionName; - std::string testSessionName = "sourcetest024"; - if (tmpstr == testSessionName) { - return DH_ERROR; - } - if (tmpstr.size() <= 0) { - std::cout << "CreateSessionServer sessionName is empty." << std::endl; - return DH_ERROR; - } - if (listener == nullptr) { - std::cout << "CreateSessionServer listener is null." << std::endl; - return DH_ERROR; - } - strcpy_s(g_mySessionName_, tmpstr.size() + 1, tmpstr.c_str()); - listener_.OnBytesReceived = listener->OnBytesReceived; - listener_.OnMessageReceived = listener->OnMessageReceived; - listener_.OnSessionClosed = listener->OnSessionClosed; - listener_.OnSessionOpened = listener->OnSessionOpened; - listener_.OnStreamReceived = listener->OnStreamReceived; + (void)info; return DH_SUCCESS; } -int RemoveSessionServer(const char *pkgName, const char *sessionName) +int Listen(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener) { - (void)pkgName; - (void)sessionName; + (void)socket; + (void)qos; + (void)qosCount; + (void)listener; return DH_SUCCESS; } -int OpenSession(const char *mySessionName, const char *peerSessionName, const char *peerDeviceId, const char *groupId, - const SessionAttribute *attr) +int Bind(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener) { - (void)mySessionName; - (void)groupId; - (void)attr; - if (strlen(peerSessionName) <= 0) { - return DH_ERROR; - } - if (strlen(peerDeviceId) <= 0) { - return DH_ERROR; - } - strncpy_s(g_peerSessionName_, CHAR_ARRAY_SIZE + 1, peerSessionName, CHAR_ARRAY_SIZE); - strncpy_s(g_peerDeviceId_, DEVICE_ID_SIZE_MAX + 1, peerDeviceId, DEVICE_ID_SIZE_MAX); - std::thread thd(OpenSessionResult); - thd.detach(); - return MOCK_SESSION_ID; -} - -void OpenSessionResult() -{ - listener_.OnSessionOpened(MOCK_SESSION_ID, DH_SUCCESS); + (void)socket; + (void)qos; + (void)qosCount; + (void)listener; + return DH_SUCCESS; } -void CloseSession(int sessionId) +void Shutdown(int32_t socket) { - (void)sessionId; + (void)socket; } -int SendBytes(int sessionId, const void *data, unsigned int len) +int SendBytes(int32_t socket, const void *data, uint32_t len) { - (void)sessionId; + (void)socket; (void)data; (void)len; return DH_SUCCESS; } -int SendMessage(int sessionId, const void *data, unsigned int len) +int SendMessage(int32_t socket, const void *data, uint32_t len) { - (void)sessionId; + (void)socket; (void)data; (void)len; return DH_SUCCESS; } -int SendStream(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param) +int SendStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param) { - (void)sessionId; + (void)socket; (void)data; (void)ext; (void)param; return DH_SUCCESS; } -int GetMySessionName(int sessionId, char *sessionName, unsigned int len) -{ - (void)sessionId; - (void)len; - strncpy_s(sessionName, CHAR_ARRAY_SIZE + 1, g_mySessionName_, CHAR_ARRAY_SIZE); - return DH_SUCCESS; -} - -int GetPeerSessionName(int sessionId, char *sessionName, unsigned int len) +int SendFile(int32_t socket, const char *sFileList[], const char *dFileList[], uint32_t fileCnt) { - (void)sessionId; - (void)len; - std::string tmpstr = sessionName; - std::string peerSessName = "sinktest0027"; - if (tmpstr == peerSessName) { - return DH_ERROR; - } - strncpy_s(sessionName, CHAR_ARRAY_SIZE + 1, g_peerSessionName_, CHAR_ARRAY_SIZE); - return DH_SUCCESS; -} - -int GetPeerDeviceId(int sessionId, char *devId, unsigned int len) -{ - (void)len; - int32_t mySessionId = 27; - if (sessionId == mySessionId) { - return DH_ERROR; - } - strncpy_s(devId, DEVICE_ID_SIZE_MAX + 1, g_peerDeviceId_, DEVICE_ID_SIZE_MAX); - return DH_SUCCESS; -} - -int GetSessionSide(int sessionId) -{ - (void)sessionId; - return DH_SUCCESS; -} - -int SetFileReceiveListener(const char *pkgName, const char *sessionName, const IFileReceiveListener *recvListener, - const char *rootDir) -{ - (void)pkgName; - (void)sessionName; - (void)recvListener; - (void)rootDir; - return DH_SUCCESS; -} - -int SetFileSendListener(const char *pkgName, const char *sessionName, const IFileSendListener *sendListener) -{ - (void)pkgName; - (void)sessionName; - (void)sendListener; + (void)socket; + (void)sFileList; + (void)dFileList; + (void)fileCnt; return DH_SUCCESS; } -int SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt) +int32_t EvaluateQos(const char *peerNetworkId, TransDataType dataType, const QosTV *qos, uint32_t qosCount) { - (void)sessionId; - (void)sFileList; - (void)dFileList; - (void)fileCnt; + (void)peerNetworkId; + (void)dataType; + (void)qos; + (void)qosCount; return DH_SUCCESS; } \ No newline at end of file diff --git a/services/channel/test/unittest/common/channel/socket.h b/services/channel/test/unittest/common/channel/socket.h new file mode 100644 index 00000000..f6d17fed --- /dev/null +++ b/services/channel/test/unittest/common/channel/socket.h @@ -0,0 +1,316 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @addtogroup SoftBus + * @{ + * + * @brief Provides high-speed, secure communications between devices. + * + * This module implements unified distributed communication management of + * nearby devices, and provides link-independent device discovery and transmission interfaces + * to support service publishing and data transmission. + * + * @since 2.0 + * @version 2.0 + */ + +/** + * @file socket.h + * + * @brief Declares unified data transmission interfaces. + * + * This file provides data transmission capabilities, including creating and removing a socket server, + * opening and closing sockets, receiving data, and querying basic socket information. \n + * You can use the interfaces to transmit data across the nearby devices that are discovered and networked. + * \n + * + * @since 2.0 + * @version 2.0 + */ +#ifndef SOCKET_H +#define SOCKET_H + +#include +#include "trans_type.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Enumerates the QoS feedback types. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + QOS_SATISFIED, /**< Feedback on satisfied quality */ + QOS_NOT_SATISFIED, /**< Feedback on not satisfied quality */ +} QoSEvent; + +/** + * @brief Defines socket callbacks. + * + * When a socket is opened or closed, or there is data to process, the related callback is invoked. + * + * @since 2.0 + * @version 2.0 + */ +typedef struct { + /** + * @brief Called when a socket is bind. + * + * This callback is invoked to verify the socket or initialize resources related to the socket. + * + * @param socket Indicates the unique socket fd; socket fd = 0 if the bind is failed. + * @since 2.0 + * @version 2.0 + */ + void (*OnBind)(int32_t socket, PeerSocketInfo info); + + /** + * @brief Called when a socket is closed. + * + * This callback is invoked to release resources related to the socket. + * + * @param socket Indicates the unique socket fd. + * @param reason Indicates the reason for closing the socket. + * @since 2.0 + * @version 2.0 + */ + void (*OnShutdown)(int32_t socket, ShutdownReason reason); + + /** + * @brief Called when bytes data is received. + * + * This callback is invoked to notify that data is received. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the bytes data received. + * @param dataLen Indicates the length of the bytes data received. + * @since 2.0 + * @version 2.0 + */ + void (*OnBytes)(int32_t socket, const void *data, uint32_t dataLen); + + /** + * @brief Called when message data is received. + * + * This callback is invoked to notify that message data is received. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the message data received. + * @param dataLen Indicates the length of the message data received. + * @since 2.0 + * @version 2.0 + */ + void (*OnMessage)(int32_t socket, const void *data, uint32_t dataLen); + + /** + * @brief Called when stream data is received. + * + * This callback is invoked to notify that stream data is received. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the stream data received. + * @param ext Indicates the pointer to the extended service data received. + * @param param Indicates the pointer to the stream data frame information. + * @since 2.0 + * @version 2.0 + */ + void (*OnStream)(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); + + /** + * @brief Called when file data is received. + * + * This callback is invoked to notify that file data is received. + * + * @param socket Indicates the unique socket fd. + * @param event Indicates the file event. + * @param data Indicates the pointer to the file data received. + * @since 2.0 + * @version 2.0 + */ + void (*OnFile)(int32_t socket, FileEvent *event); + + /** + * @brief Called when QoS state is changed. + * + * This callback is invoked to notify that QoS state is changed. + * + * @param socket Indicates the unique socket fd. + * @param event Indicates the type of QoS state change. + * @param qos[] Indicates the QoS status that we can provide. + * @since 2.0 + * @version 2.0 + */ + void (*OnQos)(int32_t socket, QoSEvent eventId, const QosTV *qos, uint32_t qosCount); +} ISocketListener; + +/** + * @brief Creates a socket. + * + * A maximum of 10 socket can be created. + * + * @param info Indicates the description of the socket structure. + * It is the unique identifier of the upper-layer service. The value cannot be empty or exceed 64 characters. + * + * @return Returns socket fd if the socket creation is successful; returns -1 otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t Socket(SocketInfo info); + +/** + * @brief Listens a socket, which is called by server. + * + * @param socket Indicates the the unique socket fd. + * @param qos Indicates the QoS requirements for socket. The value cannot be empty. + * @param listener Indicates the pointer to the socket callback. + * + * @return Returns 0 if the listen creation is successful; returns -1 otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t Listen(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener); + +/** + * @brief Binds a socket, which is called by client. + * + * {@link OnBind} is invoked to return whether the socket is successfully bind. + * Data can be transmitted only after the socket is successfully bind. + * + * @param socket Indicates the the unique socket fd. + * @param qos Indicates the QoS requirements for socket. The value cannot be empty. + * @param listener Indicates the pointer to the socket callback. + * + * @return Returns SOFTBUS_TRANS_INVALID_PARAM if invalid parameters are detected. + * @return Returns INVALID_SOCKET if the operation fails. + * @return Returns the socket fd (an integer greater than 0) if the socket is bind; + * returns an error code otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t Bind(int32_t socket, const QosTV qos[], uint32_t qosCount, const ISocketListener *listener); + +/** + * @example sendbytes_message_demo.c + */ + +/** + * @brief Sends bytes data. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the bytes data to send, which cannot be NULL. + * @param len Indicates the length of the bytes data to send. + * + * @return Returns SOFTBUS_INVALID_PARAM if invalid parameters are detected. + * @return Returns SOFTBUS_TRANS_SEND_LEN_BEYOND_LIMIT if the bytes data exceeds the maximum limit. + * @return Returns SOFTBUS_TRANS_INVALID_SOCKET if socket is invalid. + * @return Returns SOFTBUS_TRANS_SOCKET_NO_ENABLE if the socket is not bind. + * @return Returns SOFTBUS_OK if the operation is successful; returns an error code otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t SendBytes(int32_t socket, const void *data, uint32_t len); + +/** + * @brief Sends message data. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the message data to send, which cannot be NULL. + * @param len Indicates the length of the message data to send. + * + * @return Returns SOFTBUS_INVALID_PARAM if data is NULL or len is zero. + * @return Returns SOFTBUS_TRANS_SEND_LEN_BEYOND_LIMIT if the message data length exceeds the limit. + * @return Returns SOFTBUS_INVALID_SOCKET if socket is invalid. + * @return Returns SOFTBUS_TRANS_SOCKET_NO_ENABLE if the socket is not bind. + * @return Returns SOFTBUS_OK if the operation is successful; returns an error code otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t SendMessage(int32_t socket, const void *data, uint32_t len); + +/** + * @example sendstream_demo.c + */ + +/** + * @brief Sends stream data. + * + * @param socket Indicates the unique socket fd. + * @param data Indicates the pointer to the stream data to send, which cannot be NULL. + * @param ext Indicates the pointer to the extended stream data to send, which cannot be NULL. + * @param param Indicates the pointer to the stream frame information, which cannot be NULL. + * + * @return Returns SOFTBUS_INVALID_PARAM if any of the input parameters is NULL. + * @return Returns SOFTBUS_INVALID_SOCKET if socket is invalid. + * @return Returns SOFTBUS_TRANS_SOCKET_NO_ENABLE if the socket is not bind. + * @return Returns SOFTBUS_OK if the operation is successful; returns an error code otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t SendStream(int32_t socket, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); + +/** + * @example sendfile_demo.c + */ + +/** + * @brief Sends files data. + * + * @param socket Indicates the unique socket fd. + * @param sFileList Indicates the pointer to the source files data to send, which cannot be NULL. + * @param dFileList Indicates the pointer to the destination files data, which cannot be NULL. + * @param fileCnt Indicates the number of files data to send, which cannot be 0. + * + * @return Returns SOFTBUS_INVALID_PARAM if sFileList is NULL or fileCnt is 0. + * @return Returns SOFTBUS_INVALID_SOCKET if socket is invalid. + * @return Returns SOFTBUS_TRANS_SOCKET if the socket is not bind. + * @return Returns SOFTBUS_OK if the operation is successful; returns an error code otherwise. + * @since 2.0 + * @version 2.0 + */ +int32_t SendFile(int32_t socket, const char *sFileList[], const char *dFileList[], uint32_t fileCnt); + +/** + * @brief Get socket based on a socket fd. + * + * @param socket Indicates the unique socket fd. + * + * @return Returns no value. + * @since 2.0 + * @version 2.0 + */ +void Shutdown(int32_t socket); + +/** + * @brief Evaluate quality of service. + * + * @param peerNetworkId Indicates the pointer to the remote device ID. + * @param dataType Indicates the type of data. + * @param qos Indicates the expected quality of service. + * @param qosLen Indicates the number of qos + * + * @return Returns no value. + * @since 2.0 + * @version 2.0 + */ +int32_t EvaluateQos(const char *peerNetworkId, TransDataType dataType, const QosTV *qos, uint32_t qosCount); +#ifdef __cplusplus +} +#endif +#endif // SOCKET_H diff --git a/services/channel/test/unittest/common/channel/trans_type.h b/services/channel/test/unittest/common/channel/trans_type.h new file mode 100644 index 00000000..b7e642ad --- /dev/null +++ b/services/channel/test/unittest/common/channel/trans_type.h @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef SOCKET_TYPE_H +#define SOCKET_TYPE_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_MAC_LEN 18 + +/** + * @brief Enumerates the data types. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + DATA_TYPE_MESSAGE = 1, /**< Message */ + DATA_TYPE_BYTES, /**< Bytes */ + DATA_TYPE_FILE, /**< File */ + DATA_TYPE_RAW_STREAM, /**< Raw data stream */ + DATA_TYPE_VIDEO_STREAM, /**< Video data stream*/ + DATA_TYPE_AUDIO_STREAM, /**< Audio data stream*/ + DATA_TYPE_SLICE_STREAM, /**< Video slice stream*/ + DATA_TYPE_BUTT, +} TransDataType; + +/** + * @brief Defines the description of the socket. + * + * @since 2.0 + * @version 2.0 + */ +typedef struct { + char *name; /**< My socket name */ + char *peerName; /**< Peer socket name */ + char *peerNetworkId; /**< Peer network ID */ + char *pkgName; /**< Package name */ + TransDataType dataType; /**< Data type */ +} SocketInfo; + +/** + * @brief Defines the description of the socket. + * + * @since 2.0 + * @version 2.0 + */ +typedef struct { + char *name; /**< Peer socket name */ + char *networkId; /**< Peer network ID */ + char *pkgName; /**< Peer package name */ + TransDataType dataType; /**< Data type of peer socket*/ +} PeerSocketInfo; + +/** + * @brief Enumerates the reason of the shutdown event. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + SHUTDOWN_REASON_UNKNOWN, /**< Shutdown for unknown reason */ + SHUTDOWN_REASON_LOCAL, /**< Shutdown by local process */ + SHUTDOWN_REASON_PEER, /**< Shutdown by peer process */ + SHUTDOWN_REASON_LNN_CHANGED, /**< Shutdown for LNN changed */ + SHUTDOWN_REASON_CONN_CHANGED, /**< Shutdown for CONN Changed */ + SHUTDOWN_REASON_TIMEOUT, /**< Shutdown for timeout */ + SHUTDOWN_REASON_SEND_FILE_ERR, /**< Shutdown for sending file error */ + SHUTDOWN_REASON_RECV_FILE_ERR, /**< Shutdown for receiving file error */ + SHUTDOWN_REASON_RECV_DATA_ERR, /**< Shutdown for receiving data error */ + SHUTDOWN_REASON_UNEXPECTED, /**< Shutdown for unexpected reason */ + SHUTDOWN_REASON_SERVICE_DIED, /**< Shutdown for death service */ + SHUTDOWN_REASON_LNN_OFFLINE, /**< Shutdown for offline */ + SHUTDOWN_REASON_LINK_DOWN, /**< Shutdown for link down */ +} ShutdownReason; + +/** + * @brief Enumerates the Qos transform reliability. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + QOS_RELIABILITY_NONE = 1, /**< Unreliable */ + QOS_RELIABILITY_FULL, /**< Reliable */ + QOS_RELIABILITY_HALF, /**< Semi-reliable */ + QOS_RELIABILITY_BUTT, +} QosTransReliability; + +/** + * @brief Enumerates the QoS Assurance Items. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + QOS_TYPE_MIN_BW, /**< Minimum bandwidth. */ + QOS_TYPE_MAX_LATENCY, /**< Maximum latency. */ + QOS_TYPE_MIN_LATENCY, /**< Minimum latency. */ + QOS_TYPE_MAX_WAIT_TIMEOUT, /**< Maximum timeout of transmission. */ + QOS_TYPE_MAX_BUFFER, /**< Maximum cache. */ + QOS_TYPE_FIRST_PACKAGE, /**< First packet size. */ + QOS_TYPE_MAX_IDLE_TIMEOUT, /**< Maximum idle time. */ + QOS_TYPE_TRANS_RELIABILITY, /**< Transmission reliability. */ + QOS_TYPE_BUTT, +} QosType; + +/** + * @brief Defines the Qos Type-Value structure. + * + * @since 2.0 + * @version 2.0 + */ +typedef struct { + QosType qos; /**< Qos type {@link QosType} */ + int32_t value; /**< Value of Qos types */ +} QosTV; + +/** + * @brief Enumerates the file types. + * + * @since 2.0 + * @version 2.0 + */ +typedef enum { + FILE_EVENT_SEND_PROCESS, /**< Sending file */ + FILE_EVENT_SEND_FINISH, /**< Send file end */ + FILE_EVENT_SEND_ERROR, /**< Send file failed */ + FILE_EVENT_RECV_UPDATE_PATH, /**< Update root directory*/ + FILE_EVENT_RECV_START, /**< Receive file start */ + FILE_EVENT_RECV_PROCESS, /**< Receiving file */ + FILE_EVENT_RECV_FINISH, /**< Receive file end */ + FILE_EVENT_RECV_ERROR, /**< Receive file failed */ + FILE_EVENT_BUTT, +} FileEventType; + +typedef struct { + FileEventType type; /**< Event data type of the files*/ + const char **files; /**< File path*/ + uint32_t fileCnt; /**< Count of the files*/ + uint64_t bytesProcessed; /**< Send or receive bytes of the files*/ + uint64_t bytesTotal; /**< Total bytes of the files*/ + const char *(*UpdateRecvPath)(void); /**< Update file receiving directory*/ +} FileEvent; + +/** + * @brief Defines the extended stream data. + * + * @since 2.0 + * @version 2.0 + */ +typedef struct { + int32_t type; /**< Extended data type {@link TransEnumEventType} */ + int64_t value; /**< Value of the extended data */ +} TV; + +/** + * @brief Defines the frame information for stream transmission. + * + * @since 1.0 + * @version 1.0 + */ +typedef struct { + int32_t frameType; /**< Frame type, which can be I-frame or P-frame. */ + int64_t timeStamp; /**< Timestamp. */ + int32_t seqNum; /**< Sequence number. */ + int32_t seqSubNum; /**< Sequence number of the slice. */ + int32_t level; /**< Scalable video coding level. 0 stands for the base level, + 1 for level 1, and 2 for level 2. */ + int32_t bitMap; /**< Bitmap, which indicates the start or end slice of a frame. */ + int32_t tvCount; /**< Number of scalable tag-values (TVs). */ + TV *tvList; /**< Pointer to the TV list. */ +} StreamFrameInfo; + +/** + * @brief Defines the stream data. + * + * @since 1.0 + * @version 1.0 + */ +typedef struct { + char *buf; /**< Pointer to the buffer for storing the stream data */ + int bufLen; /**< Length of the buffer */ +} StreamData; +#ifdef __cplusplus +} +#endif +#endif // SOCKET_TYPE_H \ No newline at end of file -- Gitee From b4bc6b740140e8f68adea619c25de664400b93a8 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 12:17:09 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 4b6867fe..b9149f45 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -304,7 +304,7 @@ int32_t DCameraSoftbusAdapter::DCameraSoftbusSourceGetSession(int32_t socket, return DCAMERA_NOT_FOUND; } session = iter->second; - return DCAMERA_NOT_FOUND; + return DCAMERA_OK; } // source -- Gitee From c02dcafe36a302f126fd2aa3d0dcf356165dd15a Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 13:52:30 +0800 Subject: [PATCH 09/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_channel_source_impl.cpp | 3 ++- services/channel/src/dcamera_softbus_adapter.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/services/channel/src/dcamera_channel_source_impl.cpp b/services/channel/src/dcamera_channel_source_impl.cpp index 9bda046a..8e8bbbb2 100644 --- a/services/channel/src/dcamera_channel_source_impl.cpp +++ b/services/channel/src/dcamera_channel_source_impl.cpp @@ -43,7 +43,8 @@ int32_t DCameraChannelSourceImpl::CloseSession() for (auto iter = softbusSessions_.begin(); iter != softbusSessions_.end(); iter++) { int32_t retOpen = (*iter)->CloseSession(); if (retOpen != DCAMERA_OK) { - DHLOGE("DCameraChannelSourceImpl CloseSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), retOpen); + DHLOGE("DCameraChannelSourceImpl CloseSession %s failed, ret: %d", GetAnonyString(mySessionName_).c_str(), + retOpen); ret = DCAMERA_BAD_OPERATE; } } diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index b9149f45..e0d3bedf 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -55,7 +55,7 @@ static void DCameraSourceOnMessage(int32_t socket, const void *data, uint32_t da } static void DCameraSourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SourceOnStream(socket, data, ext, param); return; @@ -87,7 +87,7 @@ static void DCameraSinkOnMessage(int32_t socket, const void *data, uint32_t data } static void DCameraSinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SinkOnStream(socket, data, ext, param); return; -- Gitee From 91e1829971203631aba3b8393c06a0d67aa6e334 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 19:26:30 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- .../constants/distributed_camera_constants.h | 4 ++ .../src/distributed_camera_sink_proxy.cpp | 3 +- .../distributed_camera_sink_service.cpp | 4 +- .../distributed_camera_sink_stub.cpp | 3 +- .../distributedcameramgr/dcamera_sink_dev.cpp | 2 +- .../dcamera_source_controller.h | 2 +- .../dcamera_source_controller.cpp | 10 ++--- .../dcamera_source_controller_test.cpp | 2 +- .../channel/include/dcamera_softbus_adapter.h | 10 ++--- .../channel/src/dcamera_softbus_adapter.cpp | 40 +++++++++---------- .../channel/dcamera_softbus_session_test.cpp | 9 +++-- 11 files changed, 46 insertions(+), 43 deletions(-) diff --git a/common/include/constants/distributed_camera_constants.h b/common/include/constants/distributed_camera_constants.h index 256713fb..98481973 100644 --- a/common/include/constants/distributed_camera_constants.h +++ b/common/include/constants/distributed_camera_constants.h @@ -122,6 +122,10 @@ const int32_t HICOLLIE_INTERVAL_TIME_MS = 20 * 1000; const int32_t HICOLLIE_DELAY_TIME_MS = 5 * 1000; const size_t HICOLLIE_SLEEP_TIME_US = 5 * 1000 * 1000; +const int32_t DCAMERA_QOS_TYPE_MIN_BW = 160 * 1024 * 1024; +const int32_t DCAMERA_QOS_TYPE_MAX_LATENCY = 4000; +const int32_t DCAMERA_QOS_TYPE_MIN_LATENCY = 2000; + const int32_t CAMERA_META_DATA_ITEM_CAPACITY = 10; const int32_t CAMERA_META_DATA_DATA_CAPACITY = 100; const int32_t DCAMERA_UID = 3052; diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp index 35a86f83..5d55e5f1 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp @@ -230,7 +230,7 @@ int32_t DistributedCameraSinkProxy::GetCameraInfo(const std::string& dhId, std:: int32_t DistributedCameraSinkProxy::OpenChannel(const std::string& dhId, std::string& openInfo) { - DHLOGI("dhId: %s", GetAnonyString(dhId).c_str()); + DHLOGI("DistributedCameraSinkProxy OpenChannel Begin,dhId: %s", GetAnonyString(dhId).c_str()); if (dhId.empty() || dhId.size() > DID_MAX_SIZE || openInfo.empty() || openInfo.size() > PARAM_MAX_SIZE) { DHLOGE("params is invalid"); @@ -255,6 +255,7 @@ int32_t DistributedCameraSinkProxy::OpenChannel(const std::string& dhId, std::st } remote->SendRequest(static_cast(IDCameraSinkInterfaceCode::OPEN_CHANNEL), data, reply, option); int32_t result = reply.ReadInt32(); + DHLOGI("DistributedCameraSinkProxy OpenChannel End,dhId: %s", GetAnonyString(dhId).c_str()); return result; } diff --git a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_service.cpp b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_service.cpp index 39bfdd5e..4f5655f5 100644 --- a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_service.cpp +++ b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_service.cpp @@ -262,7 +262,7 @@ int32_t DistributedCameraSinkService::GetCameraInfo(const std::string& dhId, std int32_t DistributedCameraSinkService::OpenChannel(const std::string& dhId, std::string& openInfo) { - DHLOGI("dhId: %s", GetAnonyString(dhId).c_str()); + DHLOGI("DistributedCameraSinkService OpenChannel Begin,dhId: %s", GetAnonyString(dhId).c_str()); std::shared_ptr sinkDevice = nullptr; { std::lock_guard lock(mapMutex_); @@ -281,7 +281,7 @@ int32_t DistributedCameraSinkService::OpenChannel(const std::string& dhId, std:: CreateMsg("sink service open channel failed, dhId: %s", GetAnonyString(dhId).c_str())); return ret; } - DHLOGI("OpenChannel success"); + DHLOGI("DistributedCameraSinkService OpenChannel success"); return DCAMERA_OK; } diff --git a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp index 4b6058ee..41cb9075 100644 --- a/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp +++ b/services/cameraservice/sinkservice/src/distributedcamera/distributed_camera_sink_stub.cpp @@ -220,7 +220,7 @@ int32_t DistributedCameraSinkStub::GetCameraInfoInner(MessageParcel &data, Messa int32_t DistributedCameraSinkStub::OpenChannelInner(MessageParcel &data, MessageParcel &reply) { - DHLOGD("enter"); + DHLOGD("DistributedCameraSinkStub OpenChannelInner Begin"); int32_t ret = DCAMERA_OK; do { std::string dhId = data.ReadString(); @@ -234,6 +234,7 @@ int32_t DistributedCameraSinkStub::OpenChannelInner(MessageParcel &data, Message ret = OpenChannel(dhId, openInfo); } while (0); reply.WriteInt32(ret); + DHLOGD("DistributedCameraSinkStub OpenChannelInner End"); return DCAMERA_OK; } diff --git a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_dev.cpp b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_dev.cpp index 938eba6d..6eadf047 100644 --- a/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_dev.cpp +++ b/services/cameraservice/sinkservice/src/distributedcameramgr/dcamera_sink_dev.cpp @@ -135,7 +135,7 @@ int32_t DCameraSinkDev::GetCameraInfo(std::string& cameraInfo) int32_t DCameraSinkDev::OpenChannel(std::string& openInfo) { - DHLOGI("OpenChannel dhId: %s", GetAnonyString(dhId_).c_str()); + DHLOGI("DCameraSinkDev OpenChannel Begin, dhId: %s", GetAnonyString(dhId_).c_str()); if (openInfo.empty()) { DHLOGE("openInfo is empty"); return DCAMERA_BAD_VALUE; diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcameracontrol/dcamera_source_controller.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcameracontrol/dcamera_source_controller.h index 2f92603d..dc9b0ad3 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcameracontrol/dcamera_source_controller.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcameracontrol/dcamera_source_controller.h @@ -57,7 +57,7 @@ public: private: void HandleMetaDataResult(std::string& jsonStr); void PostChannelDisconnectedEvent(); - int32_t WaitforSessionResult(const std::string& devId); + int32_t PublishEnableLatencyMsg(const std::string& devId); class DCameraHdiRecipient : public IRemoteObject::DeathRecipient { public: void OnRemoteDied(const wptr &remote) override; diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp index 666bfeaf..270c1ec3 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcameracontrol/dcamera_source_controller.cpp @@ -316,11 +316,11 @@ int32_t DCameraSourceController::OpenChannel(std::shared_ptr& o indexs.push_back(DCameraIndex(devId, dhId)); ret = channel_->CreateSession(indexs, SESSION_FLAG, DCAMERA_SESSION_MODE_CTRL, listener_); if (ret != DCAMERA_OK) { - DHLOGE("DCameraSourceController Bind Socket failed,ret: %d", ret); + DHLOGE("DCameraSourceController Bind Socket failed, ret: %d", ret); PostChannelDisconnectedEvent(); return ret; } - return WaitforSessionResult(devId); + return PublishEnableLatencyMsg(devId); } int32_t DCameraSourceController::CloseChannel() @@ -492,13 +492,13 @@ void DCameraSourceController::HandleMetaDataResult(std::string& jsonStr) } } -int32_t DCameraSourceController::WaitforSessionResult(const std::string& devId) +int32_t DCameraSourceController::PublishEnableLatencyMsg(const std::string& devId) { - DHLOGI("DCameraSourceController Waiting Session Connect Start,devId: %s", GetAnonyString(devId_).c_str()); + DHLOGI("DCameraSourceController PublishEnableLatencyMsg Start,devId: %s", GetAnonyString(devId_).c_str()); isChannelConnected_.store(false); DCameraLowLatency::GetInstance().EnableLowLatency(); DCameraSoftbusLatency::GetInstance().StartSoftbusTimeSync(devId); - DHLOGI("DCameraSourceController Waiting Session Connect End,devId: %s", GetAnonyString(devId_).c_str()); + DHLOGI("DCameraSourceController PublishEnableLatencyMsg End,devId: %s", GetAnonyString(devId_).c_str()); return DCAMERA_OK; } diff --git a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_controller_test.cpp b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_controller_test.cpp index 30a660e6..7850060e 100644 --- a/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_controller_test.cpp +++ b/services/cameraservice/sourceservice/test/unittest/common/distributedcameramgr/dcamera_source_controller_test.cpp @@ -482,7 +482,7 @@ HWTEST_F(DCameraSourceControllerTest, dcamera_source_controller_test_017, TestSi HWTEST_F(DCameraSourceControllerTest, dcamera_source_controller_test_018, TestSize.Level1) { int32_t ret = camDev_->InitDCameraSourceDev(); - controller_->WaitforSessionResult(TEST_DEVICE_ID); + controller_->PublishEnableLatencyMsg(TEST_DEVICE_ID); ret = controller_->UnInit(); EXPECT_EQ(ret, DCAMERA_OK); } diff --git a/services/channel/include/dcamera_softbus_adapter.h b/services/channel/include/dcamera_softbus_adapter.h index bd7758e3..fced6d78 100644 --- a/services/channel/include/dcamera_softbus_adapter.h +++ b/services/channel/include/dcamera_softbus_adapter.h @@ -21,13 +21,11 @@ #include #include +#include "dcamera_softbus_session.h" #include "icamera_channel.h" -#include "transport/socket.h" -#include "transport/trans_type.h" - #include "single_instance.h" - -#include "dcamera_softbus_session.h" +#include "socket.h" +#include "trans_type.h" namespace OHOS { namespace DistributedHardware { @@ -40,10 +38,8 @@ class DCameraSoftbusAdapter { DECLARE_SINGLE_INSTANCE_BASE(DCameraSoftbusAdapter); public: - // sink_server_Listen int32_t CreatSoftBusSinkSocketServer(std::string mySessionName, DCAMERA_CHANNEL_ROLE role, DCameraSessionMode sessionMode, std::string peerDevId, std::string peerSessionName); - // source_client_Bind int32_t CreateSoftBusSourceSocketClient(std::string myDevId, std::string peerSessionName, std::string peerDevId, DCameraSessionMode sessionMode, DCAMERA_CHANNEL_ROLE role); diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index e0d3bedf..bbb91bc7 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -29,6 +29,14 @@ namespace OHOS { namespace DistributedHardware { +namespace{ + static QosTV g_qosInfo[] = { + { .qos = QOS_TYPE_MIN_BW, .value = DCAMERA_QOS_TYPE_MIN_BW }, + { .qos = QOS_TYPE_MAX_LATENCY, .value = DCAMERA_QOS_TYPE_MAX_LATENCY }, + { .qos = QOS_TYPE_MIN_LATENCY, .value = DCAMERA_QOS_TYPE_MIN_LATENCY} + }; +static uint32_t g_QosTV_Param_Index = static_cast(sizeof(g_qosInfo) / sizeof(g_qosInfo[0])); +} IMPLEMENT_SINGLE_INSTANCE(DCameraSoftbusAdapter); static void DCameraSourceOnBind(int32_t socket, PeerSocketInfo info) @@ -127,23 +135,18 @@ int32_t DCameraSoftbusAdapter::CreatSoftBusSinkSocketServer(std::string mySessio GetAnonyString(mySessionName).c_str(), GetAnonyString(peerSessionName).c_str()); { std::lock_guard autoLock(mySessionNameLock_); - if (mySessionNameSet_.find(mySessionName) ==mySessionNameSet_.end()) { + if (mySessionNameSet_.find(mySessionName) == mySessionNameSet_.end()) { mySessionNameSet_.insert(mySessionName); } else { DHLOGI("current mySessionName had Listened"); return DCAMERA_OK; } } - QosTV qos[] = { - { .qos = QOS_TYPE_MIN_BW, .value = 160 * 1024 * 1024 }, - { .qos = QOS_TYPE_MAX_LATENCY, .value = 4000 }, - { .qos = QOS_TYPE_MIN_LATENCY, .value = 2000} - }; SocketInfo serverSocketInfo = { - .name = (char *)mySessionName.c_str(), - .pkgName = (char *)PKG_NAME.c_str(), - .peerNetworkId = (char *)peerDevId.c_str(), - .peerName = (char *)peerSessionName.c_str(), + .name = const_cast(mySessionName.c_str()), + .pkgName = const_cast(PKG_NAME.c_str()), + .peerNetworkId = const_cast(peerDevId.c_str()), + .peerName = const_cast(peerSessionName.c_str()), .dataType = sessionModeAndDataTypeMap_[sessionMode], }; int socketId = Socket(serverSocketInfo); @@ -151,7 +154,7 @@ int32_t DCameraSoftbusAdapter::CreatSoftBusSinkSocketServer(std::string mySessio DHLOGE("DCameraSoftbusAdapter CreatSoftBusSinkSocketServer Error, socket is invalid"); return DCAMERA_BAD_VALUE; } - int ret = Listen(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListeners_[role]); + int ret = Listen(socketId, g_qosInfo, g_QosTV_Param_Index, &sessListeners_[role]); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter CreatSoftBusSinkSocketServer Error"); Shutdown(socketId); @@ -172,17 +175,12 @@ int32_t DCameraSoftbusAdapter::CreateSoftBusSourceSocketClient(std::string myDev { DHLOGI("CreateSoftBusSourceSocketClient start, myDevId: %s, peerSessionName: %s", GetAnonyString(myDevId).c_str(), GetAnonyString(peerSessionName).c_str()); - QosTV qos[] = { - { .qos = QOS_TYPE_MIN_BW, .value = 160 * 1024 * 1024 }, - { .qos = QOS_TYPE_MAX_LATENCY, .value = 4000 }, - { .qos = QOS_TYPE_MIN_LATENCY, .value = 2000} - }; std::string myDevIdPeerSessionName = myDevId + std::string("_") + peerSessionName; SocketInfo clientSocketInfo = { - .name = (char *)myDevIdPeerSessionName.c_str(), - .pkgName = (char *)PKG_NAME.c_str(), - .peerNetworkId = (char *)peerDevId.c_str(), - .peerName = (char *)peerSessionName.c_str(), + .name = const_cast(myDevIdPeerSessionName.c_str()), + .pkgName = const_cast(PKG_NAME.c_str()), + .peerNetworkId = const_cast(peerDevId.c_str()), + .peerName = const_cast(peerSessionName.c_str()), .dataType = sessionModeAndDataTypeMap_[sessionMode], }; int socketId = Socket(clientSocketInfo); @@ -190,7 +188,7 @@ int32_t DCameraSoftbusAdapter::CreateSoftBusSourceSocketClient(std::string myDev DHLOGE("DCameraSoftbusAdapter CreateSoftBusSourceSocketClient Error, socket is invalid"); return DCAMERA_BAD_VALUE; } - int ret = Bind(socketId, qos, sizeof(qos) / sizeof(qos[0]), &sessListeners_[role]); + int ret = Bind(socketId, g_qosInfo, g_QosTV_Param_Index, &sessListeners_[role]); if (ret != DCAMERA_OK) { DHLOGE("DCameraSoftbusAdapter CreateSoftBusSourceSocketClient Error"); Shutdown(socketId); diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp index f4f448b7..fffb2d5e 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_session_test.cpp @@ -110,10 +110,13 @@ HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_001, TestSize.L HWTEST_F(DCameraSoftbusSessionTest, dcamera_softbus_session_test_002, TestSize.Level1) { int32_t sessionId = 1; + std::string sessionName = "dcamera_softbus_session_test_002"; + std::string pkgName = "ohos.dhardware.dcamera"; + std::string networkId = "abcdefg123"; PeerSocketInfo info = { - .name = (char *)std::string("dcamera_softbus_session_test_002").c_str(), - .pkgName = (char *)std::string("ohos.dhardware.dcamera").c_str(), - .networkId = (char *)std::string("abcd").c_str(), + .name = const_cast(sessionName.c_str()), + .pkgName = const_cast(pkgName.c_str()), + .networkId = const_cast(networkId.c_str()), }; int32_t ret = softbusSession_->OnSessionOpened(sessionId, info); EXPECT_EQ(DCAMERA_OK, ret); -- Gitee From 9aad5700cd4c92ecafdb158a040fd8b153bea5a9 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Mon, 25 Dec 2023 20:47:40 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 16 ++++++++-------- .../channel/dcamera_softbus_adapter_test.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index bbb91bc7..5b19acb2 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -29,12 +29,12 @@ namespace OHOS { namespace DistributedHardware { -namespace{ - static QosTV g_qosInfo[] = { - { .qos = QOS_TYPE_MIN_BW, .value = DCAMERA_QOS_TYPE_MIN_BW }, - { .qos = QOS_TYPE_MAX_LATENCY, .value = DCAMERA_QOS_TYPE_MAX_LATENCY }, - { .qos = QOS_TYPE_MIN_LATENCY, .value = DCAMERA_QOS_TYPE_MIN_LATENCY} - }; +namespace { +static QosTV g_qosInfo[] = { + { .qos = QOS_TYPE_MIN_BW, .value = DCAMERA_QOS_TYPE_MIN_BW }, + { .qos = QOS_TYPE_MAX_LATENCY, .value = DCAMERA_QOS_TYPE_MAX_LATENCY }, + { .qos = QOS_TYPE_MIN_LATENCY, .value = DCAMERA_QOS_TYPE_MIN_LATENCY} +}; static uint32_t g_QosTV_Param_Index = static_cast(sizeof(g_qosInfo) / sizeof(g_qosInfo[0])); } IMPLEMENT_SINGLE_INSTANCE(DCameraSoftbusAdapter); @@ -63,7 +63,7 @@ static void DCameraSourceOnMessage(int32_t socket, const void *data, uint32_t da } static void DCameraSourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SourceOnStream(socket, data, ext, param); return; @@ -95,7 +95,7 @@ static void DCameraSinkOnMessage(int32_t socket, const void *data, uint32_t data } static void DCameraSinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SinkOnStream(socket, data, ext, param); return; diff --git a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp index 21598cfe..d3bdb377 100644 --- a/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp +++ b/services/channel/test/unittest/common/channel/dcamera_softbus_adapter_test.cpp @@ -326,7 +326,7 @@ HWTEST_F(DCameraSoftbusAdapterTest, dcamera_softbus_adapter_test_012, TestSize.L DCAMERA_CHANNEL_ROLE role = DCAMERA_CHANNLE_ROLE_SOURCE; std::string mySessName = "sourcetest03"; std::string peerSessName = "sinktest02"; - DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; + DCameraSessionMode sessionMode = DCameraSessionMode::DCAMERA_SESSION_MODE_VIDEO; std::string peerDevId = TEST_DEVICE_ID; std::string myDevId = "abcde"; int32_t ret = DCameraSoftbusAdapter::GetInstance().CreateSoftBusSourceSocketClient(myDevId, peerSessName, peerDevId, -- Gitee From 7e0db23a94de6050c2cc8baecb99bc8865bb9ef1 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Tue, 26 Dec 2023 10:42:46 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 5b19acb2..aced4c61 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -35,7 +35,7 @@ static QosTV g_qosInfo[] = { { .qos = QOS_TYPE_MAX_LATENCY, .value = DCAMERA_QOS_TYPE_MAX_LATENCY }, { .qos = QOS_TYPE_MIN_LATENCY, .value = DCAMERA_QOS_TYPE_MIN_LATENCY} }; -static uint32_t g_QosTV_Param_Index = static_cast(sizeof(g_qosInfo) / sizeof(g_qosInfo[0])); +static uint32_t g_QosTV_Param_Index = static_cast(sizeof(g_qosInfo) / sizeof(QosTV)); } IMPLEMENT_SINGLE_INSTANCE(DCameraSoftbusAdapter); -- Gitee From f4d5b1b76438df48dc81aa0750bf50d7bfe1c7cc Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Tue, 26 Dec 2023 10:50:40 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index aced4c61..fe396ef0 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -135,12 +135,11 @@ int32_t DCameraSoftbusAdapter::CreatSoftBusSinkSocketServer(std::string mySessio GetAnonyString(mySessionName).c_str(), GetAnonyString(peerSessionName).c_str()); { std::lock_guard autoLock(mySessionNameLock_); - if (mySessionNameSet_.find(mySessionName) == mySessionNameSet_.end()) { - mySessionNameSet_.insert(mySessionName); - } else { + if (mySessionNameSet_.find(mySessionName) != mySessionNameSet_.end()) { DHLOGI("current mySessionName had Listened"); return DCAMERA_OK; } + mySessionNameSet_.insert(mySessionName); } SocketInfo serverSocketInfo = { .name = const_cast(mySessionName.c_str()), -- Gitee From a736f9d0ac645b085dc729eceb0239af24d7e665 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Tue, 26 Dec 2023 10:57:52 +0800 Subject: [PATCH 14/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/src/dcamera_softbus_adapter.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index fe396ef0..8bafa84e 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -63,7 +63,7 @@ static void DCameraSourceOnMessage(int32_t socket, const void *data, uint32_t da } static void DCameraSourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SourceOnStream(socket, data, ext, param); return; @@ -95,7 +95,7 @@ static void DCameraSinkOnMessage(int32_t socket, const void *data, uint32_t data } static void DCameraSinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { DCameraSoftbusAdapter::GetInstance().SinkOnStream(socket, data, ext, param); return; @@ -378,7 +378,7 @@ void DCameraSoftbusAdapter::SourceOnMessage(int32_t socket, const void *data, ui } void DCameraSoftbusAdapter::SourceOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { int64_t recvT = GetNowTimeStampUs(); if (data == nullptr) { @@ -566,7 +566,7 @@ void DCameraSoftbusAdapter::SinkOnMessage(int32_t socket, const void *data, uint } void DCameraSoftbusAdapter::SinkOnStream(int32_t socket, const StreamData *data, const StreamData *ext, - const StreamFrameInfo *param) + const StreamFrameInfo *param) { if (data == nullptr) { DHLOGE("DCameraSoftbusAdapter::SinkOnStream, data is null, socket: %d.", socket); -- Gitee From db21b331eb14085c6dab18f1002caa6c16af7c62 Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Tue, 26 Dec 2023 18:12:09 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- .../camera_sink/src/distributed_camera_sink_proxy.cpp | 2 +- services/channel/src/dcamera_softbus_adapter.cpp | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp index 5d55e5f1..ecc6ebdb 100644 --- a/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp +++ b/interfaces/inner_kits/native_cpp/camera_sink/src/distributed_camera_sink_proxy.cpp @@ -255,7 +255,7 @@ int32_t DistributedCameraSinkProxy::OpenChannel(const std::string& dhId, std::st } remote->SendRequest(static_cast(IDCameraSinkInterfaceCode::OPEN_CHANNEL), data, reply, option); int32_t result = reply.ReadInt32(); - DHLOGI("DistributedCameraSinkProxy OpenChannel End,dhId: %s", GetAnonyString(dhId).c_str()); + DHLOGI("DistributedCameraSinkProxy OpenChannel End,result: %d", result); return result; } diff --git a/services/channel/src/dcamera_softbus_adapter.cpp b/services/channel/src/dcamera_softbus_adapter.cpp index 8bafa84e..ecc43630 100644 --- a/services/channel/src/dcamera_softbus_adapter.cpp +++ b/services/channel/src/dcamera_softbus_adapter.cpp @@ -385,7 +385,6 @@ void DCameraSoftbusAdapter::SourceOnStream(int32_t socket, const StreamData *dat DHLOGE("DCameraSoftbusAdapter::OnSourceStreamReceived, data is null, socket: %d.", socket); return; } - DHLOGI("DCameraSoftbusAdapter SourceOnStream Start socket: %d", socket); int32_t dataLen = data->bufLen; if (dataLen <= 0 || dataLen > static_cast(DCAMERA_MAX_RECV_DATA_LEN)) { DHLOGE("DCameraSoftbusAdapter OnSourceStreamReceived dataLen: %d, socket: %d", dataLen, socket); @@ -410,7 +409,6 @@ void DCameraSoftbusAdapter::SourceOnStream(int32_t socket, const StreamData *dat DHLOGE("Handle source stream ext failed, ret is: %d", ret); } session->OnDataReceived(buffer); - DHLOGI("DCameraSoftbusAdapter SourceOnStream End socket: %d", socket); } int32_t DCameraSoftbusAdapter::HandleSourceStreamExt(std::shared_ptr& buffer, const StreamData *ext) @@ -572,7 +570,6 @@ void DCameraSoftbusAdapter::SinkOnStream(int32_t socket, const StreamData *data, DHLOGE("DCameraSoftbusAdapter::SinkOnStream, data is null, socket: %d.", socket); return; } - DHLOGI("DCameraSoftbusAdapter SinkOnStream Start socket: %d", socket); int32_t dataLen = data->bufLen; if (dataLen <= 0 || dataLen > static_cast(DCAMERA_MAX_RECV_DATA_LEN)) { DHLOGE("DCameraSoftbusAdapter SinkOnStream dataLen: %d socket: %d", dataLen, socket); @@ -592,7 +589,6 @@ void DCameraSoftbusAdapter::SinkOnStream(int32_t socket, const StreamData *data, return; } session->OnDataReceived(buffer); - DHLOGI("DCameraSoftbusAdapter SinkOnStream End socket: %d", socket); return; } -- Gitee From 6f06f77ac0a5f862d85e0aae66abb527dad459fc Mon Sep 17 00:00:00 2001 From: "yaoruozi1@huawei.com" Date: Tue, 26 Dec 2023 18:50:49 +0800 Subject: [PATCH 16/16] =?UTF-8?q?=E9=80=82=E9=85=8D=E8=BD=AF=E6=80=BB?= =?UTF-8?q?=E7=BA=BF=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yaoruozi1@huawei.com --- services/channel/test/unittest/common/channel/socket.h | 2 +- services/channel/test/unittest/common/channel/trans_type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/channel/test/unittest/common/channel/socket.h b/services/channel/test/unittest/common/channel/socket.h index f6d17fed..084b5c54 100644 --- a/services/channel/test/unittest/common/channel/socket.h +++ b/services/channel/test/unittest/common/channel/socket.h @@ -43,7 +43,7 @@ #ifndef SOCKET_H #define SOCKET_H -#include +#include #include "trans_type.h" #ifdef __cplusplus diff --git a/services/channel/test/unittest/common/channel/trans_type.h b/services/channel/test/unittest/common/channel/trans_type.h index b7e642ad..396dcb20 100644 --- a/services/channel/test/unittest/common/channel/trans_type.h +++ b/services/channel/test/unittest/common/channel/trans_type.h @@ -14,7 +14,7 @@ */ #ifndef SOCKET_TYPE_H #define SOCKET_TYPE_H -#include +#include #ifdef __cplusplus extern "C" { -- Gitee