summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schanda <schanda@itestra.de>2013-09-06 16:11:42 +0200
committerPhilip Rauwolf <rauwolf@itestra.de>2013-09-11 09:56:50 +0200
commit69b6e39162e50916ce3b3e80ad0c2e4d9b4c4b25 (patch)
treea04a4f326b36d83fb7f68ba19269b61871adcada
parent8dbea02e1879c1c4be481999126ec0b522c05fb5 (diff)
downloadgenivi-common-api-dbus-runtime-69b6e39162e50916ce3b3e80ad0c2e4d9b4c4b25.tar.gz
Corrected bug in ObservableReadony attributes
- Observable attribute must always pass through the out signature, so add to readony attribute
-rw-r--r--src/CommonAPI/DBus/DBusAttribute.h8
-rw-r--r--src/CommonAPI/DBus/DBusProxy.cpp2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/CommonAPI/DBus/DBusAttribute.h b/src/CommonAPI/DBus/DBusAttribute.h
index eb77384..4967702 100644
--- a/src/CommonAPI/DBus/DBusAttribute.h
+++ b/src/CommonAPI/DBus/DBusAttribute.h
@@ -32,9 +32,10 @@ class DBusReadonlyAttribute: public _AttributeType {
typedef typename _AttributeType::ValueType ValueType;
typedef typename _AttributeType::AttributeAsyncCallback AttributeAsyncCallback;
- DBusReadonlyAttribute(_DBusProxyType& dbusProxy, const char* getMethodName):
+ DBusReadonlyAttribute(_DBusProxyType& dbusProxy, const char* setMethodSignature, const char* getMethodName):
dbusProxy_(dbusProxy),
- getMethodName_(getMethodName) {
+ getMethodName_(getMethodName),
+ setMethodSignature_(setMethodSignature) {
assert(getMethodName);
}
@@ -52,6 +53,7 @@ class DBusReadonlyAttribute: public _AttributeType {
protected:
_DBusProxyType& dbusProxy_;
const char* getMethodName_;
+ const char* setMethodSignature_;
};
template <typename _AttributeType, typename _DBusProxyType = DBusProxy>
@@ -188,7 +190,7 @@ class DBusAttribute: public DBusReadonlyAttribute<_AttributeType> {
typedef typename _AttributeType::AttributeAsyncCallback AttributeAsyncCallback;
DBusAttribute(_DBusProxyType& dbusProxy, const char* setMethodName, const char* setMethodSignature, const char* getMethodName):
- DBusReadonlyAttribute<_AttributeType>(dbusProxy, getMethodName),
+ DBusReadonlyAttribute<_AttributeType>(dbusProxy, setMethodSignature, getMethodName),
setMethodName_(setMethodName),
setMethodSignature_(setMethodSignature) {
assert(setMethodName);
diff --git a/src/CommonAPI/DBus/DBusProxy.cpp b/src/CommonAPI/DBus/DBusProxy.cpp
index fe7679a..990021c 100644
--- a/src/CommonAPI/DBus/DBusProxy.cpp
+++ b/src/CommonAPI/DBus/DBusProxy.cpp
@@ -41,7 +41,7 @@ DBusProxy::DBusProxy(const std::string& commonApiAddress,
dbusInterfaceName_(dbusInterfaceName),
dbusProxyStatusEvent_(this),
availabilityStatus_(AvailabilityStatus::UNKNOWN),
- interfaceVersionAttribute_(*this, "getInterfaceVersion"),
+ interfaceVersionAttribute_(*this, "getInterfaceVersion", "uu"),
dbusServiceRegistry_(dbusConnection->getDBusServiceRegistry()) {
const std::string commonApiDomain = split(commonApiAddress, ':')[0];