diff options
author | Kevron Rees <kevron.m.rees@intel.com> | 2013-12-13 15:41:43 -0800 |
---|---|---|
committer | Kevron Rees <kevron.m.rees@intel.com> | 2013-12-13 15:41:43 -0800 |
commit | d5935f3af36f79d2cd327b81dee4614d11216fbe (patch) | |
tree | c1b769cc180eb0f429924c85e6e1fe4aac269654 | |
parent | 797ff4f161693a4c3663bba5d275e747726df000 (diff) | |
download | automotive-message-broker-d5935f3af36f79d2cd327b81dee4614d11216fbe.tar.gz |
create 'frequency' option for dbus plugin
-rw-r--r-- | examples/dbusconfig | 3 | ||||
-rw-r--r-- | plugins/dbus/abstractdbusinterface.cpp | 13 | ||||
-rw-r--r-- | plugins/dbus/abstractdbusinterface.h | 4 | ||||
-rw-r--r-- | plugins/dbus/dbusplugin.cpp | 12 | ||||
-rw-r--r-- | plugins/dbus/dbussignaller.hpp | 2 |
5 files changed, 27 insertions, 7 deletions
diff --git a/examples/dbusconfig b/examples/dbusconfig index 24254b79..ca252a21 100644 --- a/examples/dbusconfig +++ b/examples/dbusconfig @@ -9,7 +9,8 @@ "sinks": [ { "name" : "DBusSink", - "path" : "/usr/lib/automotive-message-broker/dbussinkplugin.so" + "path" : "/usr/lib/automotive-message-broker/dbussinkplugin.so", + "frequency" : "1060" } ] diff --git a/plugins/dbus/abstractdbusinterface.cpp b/plugins/dbus/abstractdbusinterface.cpp index b5003804..62436250 100644 --- a/plugins/dbus/abstractdbusinterface.cpp +++ b/plugins/dbus/abstractdbusinterface.cpp @@ -192,11 +192,6 @@ AbstractDBusInterface::AbstractDBusInterface(string interfaceName, string object GDBusConnection* connection) : mInterfaceName(interfaceName), mConnection(connection), mPropertyName(objectName), supported(false), zoneFilter(Zone::None), mTime(0), regId(0) { - if(!signaller) - { - signaller = DBusSignaller::factory(50); - } - startRegistration(); mObjectPath = "/" + objectName; @@ -493,3 +488,11 @@ GVariant *AbstractDBusInterface::getProperty(string propertyName) throw -1; } +void AbstractDBusInterface::setTimeout(int timeout) +{ + if(signaller) + delete signaller; + + signaller = DBusSignaller::factory(timeout); +} + diff --git a/plugins/dbus/abstractdbusinterface.h b/plugins/dbus/abstractdbusinterface.h index ffbfb704..2050e6a8 100644 --- a/plugins/dbus/abstractdbusinterface.h +++ b/plugins/dbus/abstractdbusinterface.h @@ -28,6 +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" class AbstractProperty; @@ -105,6 +106,8 @@ protected: virtual void setProperty(std::string propertyName, GVariant * value); virtual GVariant * getProperty(std::string propertyName); + + void setTimeout(int timeout); std::unordered_map<std::string, AbstractProperty*> properties; @@ -123,6 +126,7 @@ private: static std::unordered_map<std::string, AbstractDBusInterface*> objectMap; static std::list<std::string> mimplementedProperties; guint regId; + int mTimeout; }; diff --git a/plugins/dbus/dbusplugin.cpp b/plugins/dbus/dbusplugin.cpp index be29120a..14670cc8 100644 --- a/plugins/dbus/dbusplugin.cpp +++ b/plugins/dbus/dbusplugin.cpp @@ -16,6 +16,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include <boost/lexical_cast.hpp> #include "dbusplugin.h" #include "abstractroutingengine.h" @@ -33,6 +34,17 @@ DBusSink::DBusSink(string propertyName, AbstractRoutingEngine* engine, GDBusConn AbstractSink(engine, config) { AbstractDBusInterface::re = engine; + + int timeout = 50; + + if(config.find("frequency") != config.end()) + { + int t = boost::lexical_cast<int>(config["frequency"]); + + timeout = 1000 / t; + } + + setTimeout(timeout); } void DBusSink::supportedChanged(PropertyList supportedProperties) diff --git a/plugins/dbus/dbussignaller.hpp b/plugins/dbus/dbussignaller.hpp index 2f6fcc49..a7907d29 100644 --- a/plugins/dbus/dbussignaller.hpp +++ b/plugins/dbus/dbussignaller.hpp @@ -1,5 +1,5 @@ #ifndef _DBUSSIGNALLER_H_ -#define _DBUSSINGALLER_H_ +#define _DBUSSIGNALLER_H_ #include <gio/gio.h> #include <map> |