From 6a5f434ff19963d0b37d89c06c0dab9249f34fd9 Mon Sep 17 00:00:00 2001 From: Christian Linke Date: Wed, 26 Jun 2013 17:14:08 +0200 Subject: * make Telnetserver work with maphandler * small changes to get cmake script cleaner * clean up includes of main.cpp * make DatabaseMaphandler structs private Signed-off-by: Christian Linke --- AudioManagerDaemon/CMakeLists.txt | 30 ++- AudioManagerDaemon/include/CAmMapHandler.h | 293 +++++++++++------------ AudioManagerDaemon/include/CAmTelnetMenuHelper.h | 6 +- AudioManagerDaemon/include/CAmTelnetServer.h | 6 +- AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp | 4 +- AudioManagerDaemon/src/CAmTelnetServer.cpp | 4 +- AudioManagerDaemon/src/main.cpp | 19 +- 7 files changed, 186 insertions(+), 176 deletions(-) diff --git a/AudioManagerDaemon/CMakeLists.txt b/AudioManagerDaemon/CMakeLists.txt index 0eb9100..11019fe 100644 --- a/AudioManagerDaemon/CMakeLists.txt +++ b/AudioManagerDaemon/CMakeLists.txt @@ -50,18 +50,29 @@ SET(AUDIOMAN_SRCS_CXX src/CAmCommandSender.cpp src/CAmControlReceiver.cpp src/CAmControlSender.cpp - src/CAmDatabaseHandler.cpp - src/CAmMapHandler.cpp src/CAmDatabaseObserver.cpp src/CAmRoutingReceiver.cpp src/CAmRoutingSender.cpp - src/CAmSocketHandler.cpp - src/CAmTelnetServer.cpp src/CAmRouter.cpp + src/CAmSocketHandler.cpp src/CAmDltWrapper.cpp - src/CAmTelnetMenuHelper.cpp - src/CAmWatchdog.cpp ) + + +IF(WITH_TELNET) + SET (AUDIOMAN_SRCS_CXX + ${AUDIOMAN_SRCS_CXX} + src/CAmTelnetServer.cpp + src/CAmTelnetMenuHelper.cpp + ) +ENDIF(WITH_TELNET) + +IF(WITH_SYSTEMD_WATCHDOG) + SET (AUDIOMAN_SRCS_CXX + ${AUDIOMAN_SRCS_CXX} + src/CAmWatchdog.cpp + ) +ENDIF(WITH_SYSTEMD_WATCHDOG) IF (NOT SYSTEMD_FOUND) SET (AUDIOMAN_SRCS_CXX @@ -84,13 +95,6 @@ IF(WITH_NSM) ) ENDIF(WITH_NSM) -IF(WITH_SOCKETHANDLER_LOOP) - SET (AUDIOMAN_SRCS_CXX - ${AUDIOMAN_SRCS_CXX} - src/CAmSocketHandler.cpp - ) -ENDIF(WITH_SOCKETHANDLER_LOOP) - IF(WITH_DATABASE_STORAGE) SET (AUDIOMAN_SRCS_CXX ${AUDIOMAN_SRCS_CXX} diff --git a/AudioManagerDaemon/include/CAmMapHandler.h b/AudioManagerDaemon/include/CAmMapHandler.h index 984fbe1..feea38c 100644 --- a/AudioManagerDaemon/include/CAmMapHandler.h +++ b/AudioManagerDaemon/include/CAmMapHandler.h @@ -28,7 +28,6 @@ #include #include - namespace am { //todo: check the enum values before entering & changing in the database. @@ -39,152 +38,6 @@ namespace am //todo: create test to ensure uniqueness of names throughout the database //todo: enforce the uniqueness of names -/** - * The following structures extend the base structures with the field 'reserved'. - */ - -struct am_Sink_Database_s : public am_Sink_s -{ - bool reserved; - am_Sink_Database_s():am_Sink_s(), reserved(false) - {}; - void getSinkType(am_SinkType_s & sinkType) const - { - sinkType.name = name; - sinkType.sinkID = sinkID; - sinkType.availability = available; - sinkType.muteState = muteState; - sinkType.volume = mainVolume; - sinkType.sinkClassID = sinkClassID; - }; - am_Sink_Database_s & operator=(const am_Sink_Database_s & anObject) - { - if (this != &anObject) - { - am_Sink_s::operator=(anObject); - reserved = anObject.reserved; - } - return *this; - }; - am_Sink_Database_s & operator=(const am_Sink_s & anObject) - { - if (this != &anObject) - am_Sink_s::operator=(anObject); - return *this; - }; - void print() const - { - printf("\n Sink(%s) id(%d)\n", name.c_str() ,sinkID); - printf("\t availability(%d) availabilityReason(%d) sinkClassID(%d) domainID(%d) visible(%d) volume(%d) mainVolume(%d) muteState(%d) reserved(%d)\n", - available.availability, available.availabilityReason, sinkClassID, domainID, visible, volume, mainVolume, muteState,reserved); - }; -}; - -struct am_Source_Database_s : public am_Source_s -{ - bool reserved; - am_Source_Database_s():am_Source_s(), reserved(false) - {}; - void getSourceType(am_SourceType_s & sourceType) const - { - sourceType.name = name; - sourceType.sourceClassID = sourceClassID; - sourceType.availability = available; - sourceType.sourceID = sourceID; - }; - am_Source_Database_s & operator=(const am_Source_Database_s & anObject) - { - if (this != &anObject) - { - am_Source_s::operator=(anObject); - reserved = anObject.reserved; - } - return *this; - }; - am_Source_Database_s & operator=(const am_Source_s & anObject) - { - if (this != &anObject) - { - am_Source_s::operator=(anObject); - } - return *this; - }; - void print() const - { - printf("\n Source(%s) id(%d)\n", name.c_str() ,sourceID); - printf("\t availability(%d) availabilityReason(%d) sourceClassID(%d) domainID(%d) visible(%d) volume(%d) interruptState(%d) sourceState(%d) reserved(%d)\n", - available.availability, available.availabilityReason, sourceClassID, domainID, visible, volume, interruptState, sourceState,reserved); - }; -}; - -struct am_Connection_Database_s : public am_Connection_s -{ - bool reserved; - am_Connection_Database_s():am_Connection_s(), reserved(true) - {}; - am_Connection_Database_s & operator=(const am_Connection_Database_s & anObject) - { - if (this != &anObject) - { - am_Connection_s::operator=(anObject); - reserved = anObject.reserved; - } - return *this; - }; - am_Connection_Database_s & operator=(const am_Connection_s & anObject) - { - if (this != &anObject) - am_Connection_s::operator=(anObject); - return *this; - }; -}; - -struct am_Domain_Database_s : public am_Domain_s -{ - bool reserved; - am_Domain_Database_s():am_Domain_s(), reserved(false) - {}; - am_Domain_Database_s & operator=(const am_Domain_Database_s & anObject) - { - if (this != &anObject) - { - am_Domain_s::operator=(anObject); - reserved = anObject.reserved; - } - return *this; - }; - am_Domain_Database_s & operator=(const am_Domain_s & anObject) - { - if (this != &anObject) - am_Domain_s::operator=(anObject); - return *this; - }; -}; - -struct am_MainConnection_Database_s : public am_MainConnection_s -{ - am_MainConnection_Database_s():am_MainConnection_s() - {}; - void getMainConnectionType(am_MainConnectionType_s & connectionType) const - { - connectionType.mainConnectionID = mainConnectionID; - connectionType.sourceID = sourceID; - connectionType.sinkID = sinkID; - connectionType.connectionState = connectionState; - connectionType.delay = delay; - }; - am_MainConnection_Database_s & operator=(const am_MainConnection_Database_s & anObject) - { - am_MainConnection_s::operator=(anObject); - return *this; - }; - am_MainConnection_Database_s & operator=(const am_MainConnection_s & anObject) - { - am_MainConnection_s::operator=(anObject); - return *this; - }; -}; - /** * This class handles and abstracts the database */ @@ -311,6 +164,152 @@ public: void printSourceClasses(); private: + /** + * The following structures extend the base structures with the field 'reserved'. + */ + + struct am_Sink_Database_s : public am_Sink_s + { + bool reserved; + am_Sink_Database_s():am_Sink_s(), reserved(false) + {}; + void getSinkType(am_SinkType_s & sinkType) const + { + sinkType.name = name; + sinkType.sinkID = sinkID; + sinkType.availability = available; + sinkType.muteState = muteState; + sinkType.volume = mainVolume; + sinkType.sinkClassID = sinkClassID; + }; + am_Sink_Database_s & operator=(const am_Sink_Database_s & anObject) + { + if (this != &anObject) + { + am_Sink_s::operator=(anObject); + reserved = anObject.reserved; + } + return *this; + }; + am_Sink_Database_s & operator=(const am_Sink_s & anObject) + { + if (this != &anObject) + am_Sink_s::operator=(anObject); + return *this; + }; + void print() const + { + printf("\n Sink(%s) id(%d)\n", name.c_str() ,sinkID); + printf("\t availability(%d) availabilityReason(%d) sinkClassID(%d) domainID(%d) visible(%d) volume(%d) mainVolume(%d) muteState(%d) reserved(%d)\n", + available.availability, available.availabilityReason, sinkClassID, domainID, visible, volume, mainVolume, muteState,reserved); + }; + }; + + struct am_Source_Database_s : public am_Source_s + { + bool reserved; + am_Source_Database_s():am_Source_s(), reserved(false) + {}; + void getSourceType(am_SourceType_s & sourceType) const + { + sourceType.name = name; + sourceType.sourceClassID = sourceClassID; + sourceType.availability = available; + sourceType.sourceID = sourceID; + }; + am_Source_Database_s & operator=(const am_Source_Database_s & anObject) + { + if (this != &anObject) + { + am_Source_s::operator=(anObject); + reserved = anObject.reserved; + } + return *this; + }; + am_Source_Database_s & operator=(const am_Source_s & anObject) + { + if (this != &anObject) + { + am_Source_s::operator=(anObject); + } + return *this; + }; + void print() const + { + printf("\n Source(%s) id(%d)\n", name.c_str() ,sourceID); + printf("\t availability(%d) availabilityReason(%d) sourceClassID(%d) domainID(%d) visible(%d) volume(%d) interruptState(%d) sourceState(%d) reserved(%d)\n", + available.availability, available.availabilityReason, sourceClassID, domainID, visible, volume, interruptState, sourceState,reserved); + }; + }; + + struct am_Connection_Database_s : public am_Connection_s + { + bool reserved; + am_Connection_Database_s():am_Connection_s(), reserved(true) + {}; + am_Connection_Database_s & operator=(const am_Connection_Database_s & anObject) + { + if (this != &anObject) + { + am_Connection_s::operator=(anObject); + reserved = anObject.reserved; + } + return *this; + }; + am_Connection_Database_s & operator=(const am_Connection_s & anObject) + { + if (this != &anObject) + am_Connection_s::operator=(anObject); + return *this; + }; + }; + + struct am_Domain_Database_s : public am_Domain_s + { + bool reserved; + am_Domain_Database_s():am_Domain_s(), reserved(false) + {}; + am_Domain_Database_s & operator=(const am_Domain_Database_s & anObject) + { + if (this != &anObject) + { + am_Domain_s::operator=(anObject); + reserved = anObject.reserved; + } + return *this; + }; + am_Domain_Database_s & operator=(const am_Domain_s & anObject) + { + if (this != &anObject) + am_Domain_s::operator=(anObject); + return *this; + }; + }; + + struct am_MainConnection_Database_s : public am_MainConnection_s + { + am_MainConnection_Database_s():am_MainConnection_s() + {}; + void getMainConnectionType(am_MainConnectionType_s & connectionType) const + { + connectionType.mainConnectionID = mainConnectionID; + connectionType.sourceID = sourceID; + connectionType.sinkID = sinkID; + connectionType.connectionState = connectionState; + connectionType.delay = delay; + }; + am_MainConnection_Database_s & operator=(const am_MainConnection_Database_s & anObject) + { + am_MainConnection_s::operator=(anObject); + return *this; + }; + am_MainConnection_Database_s & operator=(const am_MainConnection_s & anObject) + { + am_MainConnection_s::operator=(anObject); + return *this; + }; + }; + typedef std::map CAmMapDomain; typedef std::map CAmMapSourceClass; typedef std::map CAmMapSinkClass; diff --git a/AudioManagerDaemon/include/CAmTelnetMenuHelper.h b/AudioManagerDaemon/include/CAmTelnetMenuHelper.h index 04a8e80..249d6d7 100644 --- a/AudioManagerDaemon/include/CAmTelnetMenuHelper.h +++ b/AudioManagerDaemon/include/CAmTelnetMenuHelper.h @@ -38,7 +38,7 @@ namespace am { class CAmTelnetServer; -class CAmDatabaseHandler; +class CAmDatabaseHandlerInterface; class CAmCommandSender; class CAmRoutingSender; class CAmControlSender; @@ -61,7 +61,7 @@ public: eRootState = 0, eListState, eInfoState, eGetState, eSetState }; - CAmTelnetMenuHelper(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandler *iDatabasehandler, CAmRouter *iRouter, CAmTelnetServer *iTelnetServer); + CAmTelnetMenuHelper(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandlerInterface *iDatabasehandler, CAmRouter *iRouter, CAmTelnetServer *iTelnetServer); ~CAmTelnetMenuHelper(); @@ -184,7 +184,7 @@ private: CAmRoutingReceiver *mpRoutingReceiver; CAmControlSender *mpControlSender; CAmControlReceiver *mpControlReceiver; - CAmDatabaseHandler *mpDatabasehandler; + CAmDatabaseHandlerInterface *mpDatabasehandler; CAmRouter *mpRouter; tCommandMap mRootCommands; diff --git a/AudioManagerDaemon/include/CAmTelnetServer.h b/AudioManagerDaemon/include/CAmTelnetServer.h index bfcd145..755ade3 100644 --- a/AudioManagerDaemon/include/CAmTelnetServer.h +++ b/AudioManagerDaemon/include/CAmTelnetServer.h @@ -31,7 +31,7 @@ namespace am { -class CAmDatabaseHandler; +class CAmDatabaseHandlerInterface; class CAmCommandSender; class CAmRoutingSender; class CAmControlSender; @@ -50,7 +50,7 @@ class CAmTelnetMenuHelper; class CAmTelnetServer { public: - CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandler *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections); + CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandlerInterface *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections); ~CAmTelnetServer(); void connectSocket(const pollfd pfd, const sh_pollHandle_t handle, void* userData); void disconnectClient(int filedescriptor); @@ -82,7 +82,7 @@ private: CAmRoutingReceiver *mpRoutingReceiver; CAmControlSender *mpControlSender; CAmControlReceiver *mpControlReceiver; - CAmDatabaseHandler *mpDatabasehandler; + CAmDatabaseHandlerInterface *mpDatabasehandler; CAmRouter *mpRouter; sh_pollHandle_t mConnecthandle; std::queue mListMessages; diff --git a/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp b/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp index 70c9f9b..d8efd6a 100644 --- a/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp +++ b/AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp @@ -25,7 +25,7 @@ #include "config.h" #include "CAmRouter.h" #include "CAmTelnetServer.h" -#include "CAmDatabaseHandler.h" +#include "CAmDatabaseHandlerInterface.h" #include "CAmControlSender.h" #include "CAmCommandSender.h" #include "CAmRoutingSender.h" @@ -44,7 +44,7 @@ namespace am { CAmTelnetMenuHelper* CAmTelnetMenuHelper::instance = NULL; /****************************************************************************/ -CAmTelnetMenuHelper::CAmTelnetMenuHelper(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandler *iDatabasehandler, CAmRouter *iRouter, CAmTelnetServer *iTelnetServer) +CAmTelnetMenuHelper::CAmTelnetMenuHelper(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandlerInterface *iDatabasehandler, CAmRouter *iRouter, CAmTelnetServer *iTelnetServer) /****************************************************************************/ :mpTelenetServer(iTelnetServer), mpSocketHandler(iSocketHandler), mpCommandSender(iCommandSender), mpCommandReceiver(iCommandReceiver), mpRoutingSender(iRoutingSender), mpRoutingReceiver(iRoutingReceiver), mpControlSender(iControlSender), mpControlReceiver(iControlReceiver), mpDatabasehandler(iDatabasehandler), mpRouter(iRouter) { diff --git a/AudioManagerDaemon/src/CAmTelnetServer.cpp b/AudioManagerDaemon/src/CAmTelnetServer.cpp index ee8fb26..8ad0ecc 100755 --- a/AudioManagerDaemon/src/CAmTelnetServer.cpp +++ b/AudioManagerDaemon/src/CAmTelnetServer.cpp @@ -36,7 +36,7 @@ #include #include #include -#include "CAmDatabaseHandler.h" +#include "CAmDatabaseHandlerInterface.h" #include "CAmRoutingSender.h" #include "CAmTelnetMenuHelper.h" #include "shared/CAmDltWrapper.h" @@ -48,7 +48,7 @@ CAmTelnetServer* CAmTelnetServer::mpInstance = NULL; #define PRINT_BOOL(var) var ? output+="true\t\t" : output+="false\t\t"; -CAmTelnetServer::CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandler *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections) : +CAmTelnetServer::CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandlerInterface *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections) : telnetConnectFiredCB(this, &CAmTelnetServer::connectSocket), // telnetReceiveFiredCB(this, &CAmTelnetServer::receiveData), // telnetDispatchCB(this, &CAmTelnetServer::dispatchData), // diff --git a/AudioManagerDaemon/src/main.cpp b/AudioManagerDaemon/src/main.cpp index f9414a8..aa2fb19 100755 --- a/AudioManagerDaemon/src/main.cpp +++ b/AudioManagerDaemon/src/main.cpp @@ -39,6 +39,16 @@ #include "CAmNodeStateCommunicator.h" #endif +#ifdef WITH_DATABASE_STORAGE + #include "CAmDatabaseHandler.h" +#else + #include "CAmMapHandler.h" +#endif + +#ifdef WITH_SYSTEMD_WATCHDOG + #include "CAmWatchdog.h" +#endif + #include #include #include @@ -50,9 +60,8 @@ #include #include #include + #include "CAmRouter.h" -#include "CAmDatabaseHandler.h" -#include "CAmMapHandler.h" #include "CAmControlSender.h" #include "CAmCommandSender.h" #include "CAmRoutingSender.h" @@ -60,11 +69,9 @@ #include "CAmCommandReceiver.h" #include "CAmControlReceiver.h" #include "CAmDatabaseObserver.h" -#include "CAmWatchdog.h" #include "shared/CAmDltWrapper.h" #include "shared/CAmSocketHandler.h" - - +#include "CAmDatabaseHandlerInterface.h" using namespace am; DLT_DECLARE_CONTEXT(AudioManager) @@ -315,7 +322,7 @@ void mainProgram() #endif /*WITH_SYSTEMD_WATCHDOG*/ #ifdef WITH_DATABASE_STORAGE - CAmDatabaseHandler * ptr_iDatabaseHandler = new CAmMapHandler(databasePath); + CAmDatabaseHandler * ptr_iDatabaseHandler = new CAmDatabaseHandler(databasePath); #else CAmMapHandler * ptr_iDatabaseHandler = new CAmMapHandler(); #endif /*WITH_DATABASE_STORAGE*/ -- cgit v1.2.1