signaller change
authorKevron Rees <kevron.m.rees@intel.com>
Wed, 18 Dec 2013 18:15:21 +0000 (10:15 -0800)
committerKevron Rees <kevron.m.rees@intel.com>
Mon, 6 Jan 2014 22:32:10 +0000 (14:32 -0800)
plugins/dbus/CMakeLists.txt
plugins/dbus/abstractdbusinterface.cpp
plugins/dbus/abstractdbusinterface.h
plugins/dbus/automotivemanager.cpp
plugins/dbus/dbusinterfacemanager.cpp
plugins/dbus/dbussignaller.cpp [new file with mode: 0644]
plugins/dbus/dbussignaller.h [moved from plugins/dbus/dbussignaller.hpp with 95% similarity]

index be41b6f..a07dead 100644 (file)
@@ -3,9 +3,9 @@ include_directories(${CMAKE_SOURCE_DIR}/lib ${include_dirs})
 
 pkg_check_modules(gio REQUIRED gio-2.0)
 
-set(dbussinkplugin_headers dbussignaller.hpp automotivemanager.h dbusplugin.h abstractproperty.h abstractdbusinterface.h dbusinterfacemanager.h runningstatus.h varianttype.h
+set(dbussinkplugin_headers dbussignaller.h automotivemanager.h dbusplugin.h abstractproperty.h abstractdbusinterface.h dbusinterfacemanager.h runningstatus.h varianttype.h
 custompropertyinterface.h uncategorizedproperty.h environmentproperties.h vehicleinfo.h maintenance.h parking.h fakeidlheader.h drivingsafety.h)
-set(dbussinkplugin_sources dbussignaller.hpp automotivemanager.cpp dbusplugin.cpp abstractproperty.cpp abstractdbusinterface.cpp dbusinterfacemanager.cpp runningstatus.cpp
+set(dbussinkplugin_sources dbussignaller.cpp automotivemanager.cpp dbusplugin.cpp abstractproperty.cpp abstractdbusinterface.cpp dbusinterfacemanager.cpp runningstatus.cpp
 varianttype.cpp custompropertyinterface.cpp uncategorizedproperty.cpp environmentproperties.cpp vehicleinfo.cpp maintenance.cpp parking.cpp drivingsafety.cpp)
 
 add_library(dbussinkplugin MODULE ${dbussinkplugin_sources})
index 6243625..e2ddd87 100644 (file)
@@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
 #include "abstractproperty.h"
 
-#include "dbussignaller.hpp"
+#include "dbussignaller.h"
 
 static DBusSignaller* signaller = nullptr;
 
@@ -490,9 +490,7 @@ GVariant *AbstractDBusInterface::getProperty(string propertyName)
 
 void AbstractDBusInterface::setTimeout(int timeout)
 {
-       if(signaller)
-               delete signaller;
-
-       signaller = DBusSignaller::factory(timeout);
+       if(!signaller)
+               signaller = DBusSignaller::factory(timeout);
 }
 
index 2050e6a..22997db 100644 (file)
@@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 #include <nullptr.h>
 #include "abstractpropertytype.h"
 #include <abstractroutingengine.h>
-#include "dbussignaller.hpp"
+#include "dbussignaller.h"
 
 class AbstractProperty;
 
index 58526df..76a3ab9 100644 (file)
@@ -219,8 +219,10 @@ static void handleMethodCall(GDBusConnection       *connection,
 
                g_dbus_method_invocation_return_value(invocation,g_variant_new("(as)",&builder));
        }
-
-       g_dbus_method_invocation_return_error(invocation,G_DBUS_ERROR,G_DBUS_ERROR_UNKNOWN_METHOD, "Unknown method.");  
+       else
+       {
+               g_dbus_method_invocation_return_error(invocation,G_DBUS_ERROR,G_DBUS_ERROR_UNKNOWN_METHOD, "Unknown method.");
+       }
 }
 
 static GVariant* getProperty(GDBusConnection* connection, const gchar* sender, const gchar* objectPath, const gchar* interfaceName, const gchar* propertyName, GError** error, gpointer userData)
index 618b6df..5126e39 100644 (file)
@@ -224,10 +224,10 @@ static void
 on_name_lost (GDBusConnection *connection, const gchar *name, gpointer user_data)
 {
 
-       DebugOut(0)<<"DBus: Lost bus name"<<endl;
+       DebugOut(DebugOut::Error)<<"DBus: Lost bus name"<<endl;
 
        if(!connection){
-               DebugOut(0)<<"DBus: Connection could not be established."<<endl;
+               DebugOut(DebugOut::Error)<<"DBus: Connection could not be established."<<endl;
                throw std::runtime_error("Could not establish DBus connection.");
        }
 }
diff --git a/plugins/dbus/dbussignaller.cpp b/plugins/dbus/dbussignaller.cpp
new file mode 100644 (file)
index 0000000..b016bd9
--- /dev/null
@@ -0,0 +1,3 @@
+#include "dbussignaller.h"
+
+DBusSignaller* DBusSignaller::singleton = nullptr;
similarity index 95%
rename from plugins/dbus/dbussignaller.hpp
rename to plugins/dbus/dbussignaller.h
index a7907d2..4026c15 100644 (file)
@@ -14,7 +14,9 @@ public:
 
        static DBusSignaller* factory(int timeout)
        {
-               return new DBusSignaller(timeout);
+               if(!singleton)
+                       return singleton = new DBusSignaller(timeout);
+               return singleton;
        }
 
        void fireSignal(GDBusConnection* conn, std::string objPath, std::string iface, std::string sigName, AbstractProperty* prop)
@@ -93,7 +95,7 @@ private:
 
        std::map<std::string, DBusSignal> queue;
 
-
+       static DBusSignaller * singleton;
 };
 
 #endif