* Creation of database handler through the 'new' opertor replaced.
authorAleksander Donchev <aleksander.donchev@partner.bmw.de>
Wed, 10 Jul 2013 14:21:07 +0000 (16:21 +0200)
committerAleksander Donchev <aleksander.donchev@partner.bmw.de>
Wed, 10 Jul 2013 14:21:07 +0000 (16:21 +0200)
Signed-off-by: Christian Linke <christian.linke@bmw.de>
AudioManagerDaemon/include/IAmDatabaseHandler.h
AudioManagerDaemon/src/main.cpp

index 5ed259d..d5b33b9 100644 (file)
@@ -53,7 +53,8 @@ typedef std::map<am_gatewayID_t, std::vector<bool> > ListConnectionFormat; //!<
 class IAmDatabaseHandler
 {
 public:
-
+       IAmDatabaseHandler () {};
+       virtual ~IAmDatabaseHandler () {};
     virtual am_Error_e enterDomainDB(const am_Domain_s& domainData, am_domainID_t& domainID) = 0;
     virtual am_Error_e enterMainConnectionDB(const am_MainConnection_s& mainConnectionData, am_mainConnectionID_t& connectionID) = 0;
     virtual am_Error_e enterSinkDB(const am_Sink_s& sinkData, am_sinkID_t& sinkID) = 0;
index 69b2860..9bcc57c 100755 (executable)
@@ -321,11 +321,11 @@ void mainProgram()
 #endif /*WITH_SYSTEMD_WATCHDOG*/
 
 #ifdef WITH_DATABASE_STORAGE
-    CAmDatabaseHandler * pDatabaseHandler = new CAmDatabaseHandler(databasePath);
+    CAmDatabaseHandlerSQLite iDatabaseHandler(databasePath);
 #else
-    CAmDatabaseHandlerMap * pDatabaseHandler = new CAmDatabaseHandlerMap();
+    CAmDatabaseHandlerMap iDatabaseHandler;
 #endif /*WITH_DATABASE_STORAGE*/
-    IAmDatabaseHandler & iDatabaseHandler = *pDatabaseHandler;
+    IAmDatabaseHandler *pDatabaseHandler = dynamic_cast<IAmDatabaseHandler*>( &iDatabaseHandler );
 
     CAmRoutingSender iRoutingSender(listRoutingPluginDirs);
     CAmCommandSender iCommandSender(listCommandPluginDirs);
@@ -371,11 +371,6 @@ void mainProgram()
 
     //start the mainloop here....
     iSocketHandler.start_listenting();
-    if(pDatabaseHandler)
-    {
-               delete pDatabaseHandler;
-               pDatabaseHandler = NULL;
-    }
 }
 
 /**