summaryrefslogtreecommitdiff
path: root/include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp')
-rw-r--r--include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp b/include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp
index dc485cb..fd9237e 100644
--- a/include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp
+++ b/include/CommonAPI/DBus/DBusFreedesktopAttribute.hpp
@@ -15,16 +15,19 @@
namespace CommonAPI {
namespace DBus {
-template <typename _AttributeType>
+template <typename _AttributeType, typename _AttributeDepl = EmptyDeployment>
class DBusFreedesktopReadonlyAttribute: public _AttributeType {
public:
typedef typename _AttributeType::ValueType ValueType;
+ typedef _AttributeDepl ValueTypeDepl;
typedef typename _AttributeType::AttributeAsyncCallback AttributeAsyncCallback;
- DBusFreedesktopReadonlyAttribute(DBusProxy &_proxy, const std::string &_interfaceName, const std::string &_propertyName)
+ DBusFreedesktopReadonlyAttribute(DBusProxy &_proxy, const std::string &_interfaceName, const std::string &_propertyName,
+ _AttributeDepl *_depl = nullptr)
: proxy_(_proxy),
interfaceName_(_interfaceName),
- propertyName_(_propertyName) {
+ propertyName_(_propertyName),
+ depl_(_depl) {
}
void getValue(CommonAPI::CallStatus &_status, ValueType &_value, const CommonAPI::CallInfo *_info) const {
@@ -78,6 +81,7 @@ protected:
DBusProxy &proxy_;
std::string interfaceName_;
std::string propertyName_;
+ _AttributeDepl *depl_;
};
template <typename _AttributeType>
@@ -145,16 +149,15 @@ protected:
std::string propertyName_;
};
-template <typename _AttributeType>
+template <typename _AttributeType, typename _AttributeDepl = EmptyDeployment>
class DBusFreedesktopAttribute
- : public DBusFreedesktopReadonlyAttribute<_AttributeType> {
+ : public DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl> {
public:
typedef typename _AttributeType::ValueType ValueType;
typedef typename _AttributeType::AttributeAsyncCallback AttributeAsyncCallback;
- typedef typename _AttributeType::ChangedEvent ChangedEvent;
- DBusFreedesktopAttribute(DBusProxy &_proxy, const std::string &_interfaceName, const std::string &_propertyName)
- : DBusFreedesktopReadonlyAttribute<_AttributeType>(_proxy, _interfaceName, _propertyName) {
+ DBusFreedesktopAttribute(DBusProxy &_proxy, const std::string &_interfaceName, const std::string &_propertyName, _AttributeDepl *_depl = nullptr)
+ : DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>(_proxy, _interfaceName, _propertyName, _depl) {
}
void setValue(const ValueType &_request, CommonAPI::CallStatus &_status, ValueType &_response, const CommonAPI::CallInfo *_info) {
@@ -166,13 +169,13 @@ class DBusFreedesktopAttribute
DBusSerializableArguments<
>
>::callMethodWithReply(
- DBusFreedesktopReadonlyAttribute<_AttributeType>::proxy_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::proxy_,
"org.freedesktop.DBus.Properties",
"Set",
"ssv",
(_info ? _info : &defaultCallInfo),
- DBusFreedesktopReadonlyAttribute<_AttributeType>::interfaceName_,
- DBusFreedesktopReadonlyAttribute<_AttributeType>::propertyName_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::interfaceName_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::propertyName_,
deployedVariant,
_status);
_response = _request;
@@ -187,13 +190,13 @@ class DBusFreedesktopAttribute
DBusSerializableArguments<
>
>::callMethodAsync(
- DBusFreedesktopReadonlyAttribute<_AttributeType>::proxy_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::proxy_,
"org.freedesktop.DBus.Properties",
"Set",
"ssv",
(_info ? _info : &defaultCallInfo),
- DBusFreedesktopReadonlyAttribute<_AttributeType>::interfaceName_,
- DBusFreedesktopReadonlyAttribute<_AttributeType>::propertyName_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::interfaceName_,
+ DBusFreedesktopReadonlyAttribute<_AttributeType, _AttributeDepl>::propertyName_,
deployedVariant,
[_callback, deployedVariant](CommonAPI::CallStatus _status) {
_callback(_status, deployedVariant.getValue().template get<ValueType>());