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})
#include "abstractproperty.h"
-#include "dbussignaller.hpp"
+#include "dbussignaller.h"
static DBusSignaller* signaller = nullptr;
void AbstractDBusInterface::setTimeout(int timeout)
{
- if(signaller)
- delete signaller;
-
- signaller = DBusSignaller::factory(timeout);
+ if(!signaller)
+ signaller = DBusSignaller::factory(timeout);
}
#include <nullptr.h>
#include "abstractpropertytype.h"
#include <abstractroutingengine.h>
-#include "dbussignaller.hpp"
+#include "dbussignaller.h"
class AbstractProperty;
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)
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.");
}
}
--- /dev/null
+#include "dbussignaller.h"
+
+DBusSignaller* DBusSignaller::singleton = nullptr;
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)
std::map<std::string, DBusSignal> queue;
-
+ static DBusSignaller * singleton;
};
#endif