* [GAM-35] implement DBus for SESSION or SYSTEM bus
authorchristian mueller <christian.ei.mueller@bmw.de>
Tue, 3 Apr 2012 18:15:27 +0000 (20:15 +0200)
committerchristian mueller <christian.ei.mueller@bmw.de>
Tue, 3 Apr 2012 18:21:54 +0000 (20:21 +0200)
Signed-off-by: christian mueller <christian.ei.mueller@bmw.de>
AudioManagerDaemon/src/CAmDbusWrapper.cpp
AudioManagerDaemon/src/main.cpp
README
include/shared/CAmDbusWrapper.h

index 97b4ccd..0f511e2 100644 (file)
@@ -46,7 +46,7 @@ DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE                                                             \
 
 CAmDbusWrapper* CAmDbusWrapper::mpReference = NULL;
 
-CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler) :
+CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler, DBusBusType type) :
         pDbusDispatchCallback(this, &CAmDbusWrapper::dbusDispatchCallback), //
         pDbusFireCallback(this, &CAmDbusWrapper::dbusFireCallback), //
         pDbusCheckCallback(this, &CAmDbusWrapper::dbusCheckCallback), //
@@ -61,7 +61,7 @@ CAmDbusWrapper::CAmDbusWrapper(CAmSocketHandler* socketHandler) :
 
     dbus_error_init(&mDBusError);
     logInfo("DBusWrapper::DBusWrapper Opening DBus connection");
-    mpDbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &mDBusError);
+    mpDbusConnection = dbus_bus_get(type, &mDBusError);
     if (dbus_error_is_set(&mDBusError))
     {
         logError("DBusWrapper::DBusWrapper Error while getting the DBus");
index 74631f1..92a1e41 100644 (file)
@@ -73,6 +73,9 @@ const char* USAGE_DESCRIPTION = "Usage:\tAudioManagerDaemon [options]\n"
         "\t-V: print DLT logs to stdout\t\n"
 #endif
         "\t-d: daemonize AudioManager \t\n"
+#ifdef WITH_DBUS_WRAPPER
+        "\t-T: DbusType to be used by CAmDbusWrapper (0=DBUS_SESSION[default], 1=DBUS_SYSTEM)\t\n"
+#endif
         "\t-p<path> path for sqlite database (default is in memory)\t\n"
         "\t-t<port> port for telnetconnection\t\n"
         "\t-m<max> number of max telnetconnections\t\n"
@@ -91,6 +94,10 @@ unsigned int maxConnections = MAX_TELNETCONNECTIONS;
 int fd0, fd1, fd2;
 bool enableNoDLTDebug = false;
 
+#ifdef WITH_DBUS_WRAPPER
+    DBusBusType dbusWrapperType=DBUS_BUS_SESSION;
+#endif
+
 /**
  * the out of memory handler
  */
@@ -162,9 +169,17 @@ void parseCommandLine(int argc, char **argv)
     while (optind < argc)
     {
 #ifdef WITH_DLT
-        int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::");
+    #ifdef WITH_DBUS_WRAPPER
+            int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::T::");
+    #else
+            int option = getopt(argc, argv, "h::v::c::l::r::L::R::d::t::m::i::p::");
+    #endif WITH_DBUS_WRAPPER
 #else
-        int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::");
+    #ifdef WITH_DBUS_WRAPPER
+            int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::T::");
+    #else
+            int option = getopt(argc, argv, "h::v::V::c::l::r::L::R::d::t::m::i::p::");
+    #endif //WITH_DBUS_WRAPPER
 #endif
 
         switch (option)
@@ -224,6 +239,11 @@ void parseCommandLine(int argc, char **argv)
             enableNoDLTDebug = true;
             break;
 #endif
+#ifdef WITH_DBUS_WRAPPER
+            case 'T':
+            dbusWrapperType=static_cast<DBusBusType>(atoi(optarg));
+            break;
+#endif
         case 'h':
         default:
             printf("AudioManagerDaemon Version: %s\n", DAEMONVERSION);
@@ -292,7 +312,7 @@ int main(int argc, char *argv[])
     CAmSocketHandler iSocketHandler;
 
 #ifdef WITH_DBUS_WRAPPER
-    CAmDbusWrapper iDBusWrapper(&iSocketHandler);
+    CAmDbusWrapper iDBusWrapper(&iSocketHandler,dbusWrapperType);
 #endif /*WITH_DBUS_WRAPPER */
 
     CAmDatabaseHandler iDatabaseHandler(databasePath);
diff --git a/README b/README
index 03b4b63..67eb30e 100644 (file)
--- a/README
+++ b/README
@@ -133,18 +133,21 @@ The commandline options of the AudioManager:
 
        Usage:  AudioManagerDaemon [options]
        options:        
-               -h: print this message  
-               -i: info about current settings         
-               -v: print version       
-               -d: daemonize AudioManager      
-               -p<path> path for sqlite database (default is in memory)        
-               -t<port> port for telnetconnection      
-               -m<max> number of max telnetconnections 
-               -c<Name> use controllerPlugin <Name> (full path with .so ending)        
-               -l<Name> replace command plugin directory with <Name> (full path)       
-               -r<Name> replace routing plugin directory with <Name> (full path)       
-               -L<Name> add command plugin directory with <Name> (full path)   
-               -R<Name> add routing plugin directory with <Name> (full path)   
+       
+    -h: print this message  
+    -i: info about current settings     
+    -v: print version   
+    -V: print DLT logs to stdout    
+    -d: daemonize AudioManager  
+    -T: DbusType to be used by CAmDbusWrapper (0=DBUS_SESSION[default], 1=DBUS_SYSTEM)  
+    -p<path> path for sqlite database (default is in memory)    
+    -t<port> port for telnetconnection  
+    -m<max> number of max telnetconnections 
+    -c<Name> use controllerPlugin <Name> (full path with .so ending)    
+    -l<Name> replace command plugin directory with <Name> (full path)   
+    -r<Name> replace routing plugin directory with <Name> (full path)   
+    -L<Name> add command plugin directory with <Name> (full path)   
+    -R<Name> add routing plugin directory with <Name> (full path)      
 
 
 ***********************************************************************************************************
index 020cf89..46b758a 100644 (file)
@@ -39,7 +39,7 @@ namespace am
 class CAmDbusWrapper
 {
 public:
-    CAmDbusWrapper(CAmSocketHandler* socketHandler);
+    CAmDbusWrapper(CAmSocketHandler* socketHandler,DBusBusType type=DBUS_BUS_SESSION);
     virtual ~CAmDbusWrapper();
 
     void registerCallback(const DBusObjectPathVTable* vtable, const std::string& path, void* userdata);