summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Linke <christian.linke@bmw.de>2013-06-26 17:14:08 +0200
committerChristian Linke <christian.linke@bmw.de>2013-06-26 17:46:46 +0200
commit6a5f434ff19963d0b37d89c06c0dab9249f34fd9 (patch)
tree92011bdac35c3ce51039b0d8d98e12d637037a66
parentc0fd43259ab0e269dd0918231c162d19d2dea593 (diff)
downloadaudiomanager-6a5f434ff19963d0b37d89c06c0dab9249f34fd9.tar.gz
* 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 <christian.linke@bmw.de>
-rw-r--r--AudioManagerDaemon/CMakeLists.txt30
-rw-r--r--AudioManagerDaemon/include/CAmMapHandler.h293
-rw-r--r--AudioManagerDaemon/include/CAmTelnetMenuHelper.h6
-rw-r--r--AudioManagerDaemon/include/CAmTelnetServer.h6
-rw-r--r--AudioManagerDaemon/src/CAmTelnetMenuHelper.cpp4
-rwxr-xr-xAudioManagerDaemon/src/CAmTelnetServer.cpp4
-rwxr-xr-xAudioManagerDaemon/src/main.cpp19
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 <stdint.h>
#include <limits.h>
-
namespace am
{
//todo: check the enum values before entering & changing in the database.
@@ -40,152 +39,6 @@ namespace am
//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
*/
class CAmMapHandler : public CAmDatabaseHandlerInterface
@@ -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<am_domainID_t, am_Domain_Database_s> CAmMapDomain;
typedef std::map<am_sourceClass_t, am_SourceClass_s> CAmMapSourceClass;
typedef std::map<am_sinkClass_t, am_SinkClass_s> 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<std::string> 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 <unistd.h>
#include <stdexcept>
#include <cstdlib>
-#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 <sys/resource.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -50,9 +60,8 @@
#include <cstring>
#include <cstdio>
#include <new>
+
#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*/