From d4cae89a7aaf275110dddb205a1be7c3cac531c9 Mon Sep 17 00:00:00 2001 From: Martin Koch Date: Mon, 29 Jun 2020 14:53:21 +0200 Subject: AM: fix const handle in transferConnection family of functions Signed-off-by: Martin Koch --- AudioManagerCore/include/CAmControlReceiver.h | 2 +- AudioManagerCore/include/CAmRoutingSender.h | 20 +++++++++++++++++++- AudioManagerCore/src/CAmControlReceiver.cpp | 2 +- AudioManagerCore/src/CAmRoutingSender.cpp | 7 ++++++- include/IAmControl.h | 2 +- 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/AudioManagerCore/include/CAmControlReceiver.h b/AudioManagerCore/include/CAmControlReceiver.h index 73aac03..d4a75b1 100644 --- a/AudioManagerCore/include/CAmControlReceiver.h +++ b/AudioManagerCore/include/CAmControlReceiver.h @@ -128,7 +128,7 @@ public: void setRoutingRundown(); void confirmControllerReady(const am_Error_e error); void confirmControllerRundown(const am_Error_e error); - am_Error_e transferConnection(const am_Handle_s handle, am_mainConnectionID_t mainConnectionID + am_Error_e transferConnection(am_Handle_s &handle, am_mainConnectionID_t mainConnectionID , am_domainID_t domainID) override; am_Error_e getSocketHandler(CAmSocketHandler * &socketHandler); void getInterfaceVersion(std::string &version) const; diff --git a/AudioManagerCore/include/CAmRoutingSender.h b/AudioManagerCore/include/CAmRoutingSender.h index 7756ccc..cbaddae 100644 --- a/AudioManagerCore/include/CAmRoutingSender.h +++ b/AudioManagerCore/include/CAmRoutingSender.h @@ -62,7 +62,7 @@ public: am_Error_e startupInterfaces(CAmRoutingReceiver *iRoutingReceiver); void setRoutingReady(); void setRoutingRundown(); - am_Error_e asyncTransferConnection(const am_Handle_s handle, am_domainID_t domainID + am_Error_e asyncTransferConnection(am_Handle_s &handle, am_domainID_t domainID , const std::vector> &route, am_ConnectionState_e state); am_Error_e asyncAbort(const am_Handle_s &handle); am_Error_e asyncConnect(am_Handle_s &handle, am_connectionID_t &connectionID, const am_sourceID_t sourceID, const am_sinkID_t sinkID, const am_CustomConnectionFormat_t connectionFormat); @@ -264,6 +264,24 @@ public: CAmRoutingSender *mRoutingSender; }; + class handleTransfer : public handleDataBase + { + public: + handleTransfer(IAmRoutingSend *interface, const std::vector> &route + , am_ConnectionState_e state, IAmDatabaseHandler *databaseHandler) + : handleDataBase(interface, databaseHandler) + , mRoute(route) + , mState(state) + , mTransferPending(true) {} + ~handleTransfer() { }; + am_Error_e writeDataToDatabase() { return E_OK; }; + + private: + const std::vector> mRoute; + am_ConnectionState_e mState; + bool mTransferPending; + }; + class handleSetVolumes : public handleDataBase { public: diff --git a/AudioManagerCore/src/CAmControlReceiver.cpp b/AudioManagerCore/src/CAmControlReceiver.cpp index 737e659..6c2db01 100644 --- a/AudioManagerCore/src/CAmControlReceiver.cpp +++ b/AudioManagerCore/src/CAmControlReceiver.cpp @@ -456,7 +456,7 @@ void CAmControlReceiver::confirmControllerRundown(const am_Error_e error) mSocketHandler->exit_mainloop(); } -am_Error_e CAmControlReceiver::transferConnection(const am_Handle_s handle +am_Error_e CAmControlReceiver::transferConnection(am_Handle_s &handle , am_mainConnectionID_t mainConnectionID, am_domainID_t domainID) { am_MainConnection_s mainConnectionData; diff --git a/AudioManagerCore/src/CAmRoutingSender.cpp b/AudioManagerCore/src/CAmRoutingSender.cpp index b7da1c4..78d0bba 100644 --- a/AudioManagerCore/src/CAmRoutingSender.cpp +++ b/AudioManagerCore/src/CAmRoutingSender.cpp @@ -921,12 +921,17 @@ void CAmRoutingSender::setRoutingRundown() } } -am_Error_e CAmRoutingSender::asyncTransferConnection(const am_Handle_s handle, am_domainID_t domainID +am_Error_e CAmRoutingSender::asyncTransferConnection(am_Handle_s &handle, am_domainID_t domainID , const std::vector> &route, am_ConnectionState_e state) { auto iter = mMapDomainInterface.find(domainID); if (iter != mMapDomainInterface.end() && iter->second) { + auto handleData = std::make_shared(iter->second, route, state, mpDatabaseHandler); + handle = createHandle(handleData, H_TRANSFERCONNECTION); + + logInfo(__METHOD_NAME__, "handle=", handle); + return iter->second->asyncTransferConnection(handle, domainID, route, state); } diff --git a/include/IAmControl.h b/include/IAmControl.h index e3fe74c..0dd46e5 100644 --- a/include/IAmControl.h +++ b/include/IAmControl.h @@ -575,7 +575,7 @@ public: * @note Success of the responsibility transfer itself is acknowledged through corresponding * function @ref am::IAmControlSend::cbAckTransferConnection "cbAckTransferConnection()". */ - virtual am_Error_e transferConnection(const am_Handle_s handle + virtual am_Error_e transferConnection(am_Handle_s &handle , am_mainConnectionID_t mainConnectionID, am_domainID_t domainID) = 0; /** -- cgit v1.2.1