diff options
author | Jürgen Gehring <juergen.gehring@bmw.de> | 2015-06-17 05:12:07 -0700 |
---|---|---|
committer | Jürgen Gehring <juergen.gehring@bmw.de> | 2015-06-17 05:12:07 -0700 |
commit | 49d0b428ca19852d49965f35328a314f22d88807 (patch) | |
tree | 4b8d945f29cac4b4b599f79a872cc5029288f5c5 /include/CommonAPI/DBus/DBusTypeOutputStream.hpp | |
parent | 54982071a99484488207ad3bd5e9391a15bffe02 (diff) | |
download | genivi-common-api-dbus-runtime-49d0b428ca19852d49965f35328a314f22d88807.tar.gz |
CommonAPI 3.1.23.1.2
Diffstat (limited to 'include/CommonAPI/DBus/DBusTypeOutputStream.hpp')
-rw-r--r-- | include/CommonAPI/DBus/DBusTypeOutputStream.hpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/include/CommonAPI/DBus/DBusTypeOutputStream.hpp b/include/CommonAPI/DBus/DBusTypeOutputStream.hpp index 3ba7cf7..928eadc 100644 --- a/include/CommonAPI/DBus/DBusTypeOutputStream.hpp +++ b/include/CommonAPI/DBus/DBusTypeOutputStream.hpp @@ -80,6 +80,11 @@ public: return (*this); } + TypeOutputStream &writeType(const Version &) { + signature_.append("(uu)"); + return (*this); + } + TypeOutputStream &writeVersionType() { signature_.append("(uu)"); return (*this); @@ -87,7 +92,7 @@ public: template<typename... _Types> TypeOutputStream &writeType(const Struct<_Types...> &_value) { - signature_.append("("); + signature_.append("("); const auto itsSize(std::tuple_size<std::tuple<_Types...>>::value); StructTypeWriter<itsSize-1, DBusTypeOutputStream, Struct<_Types...>>{} (*this, _value); @@ -97,28 +102,28 @@ public: template<class _PolymorphicStruct> TypeOutputStream &writeType(const std::shared_ptr<_PolymorphicStruct> &_value) { - signature_.append("("); - _value->writeType(*this); + signature_.append("("); + _value->template writeType<>((*this)); signature_.append(")"); return (*this); } template<typename... _Types> TypeOutputStream &writeType(const Variant<_Types...> &_value) { - signature_.append("(yv)"); - return (*this); + signature_.append("(yv)"); + return (*this); } template<typename _Deployment, typename... _Types> TypeOutputStream &writeType(const Variant<_Types...> &_value, const _Deployment *_depl) { - if (_depl != nullptr && _depl->isFreeDesktop_) { - signature_.append("v"); - } else { - signature_.append("(yv)"); - } - TypeOutputStreamWriteVisitor<DBusTypeOutputStream> typeVisitor(*this); - ApplyVoidVisitor<TypeOutputStreamWriteVisitor<DBusTypeOutputStream>, - Variant<_Types...>, _Types...>::visit(typeVisitor, _value); + if (_depl != nullptr && _depl->isFreeDesktop_) { + signature_.append("v"); + } else { + signature_.append("(yv)"); + } + TypeOutputStreamWriteVisitor<DBusTypeOutputStream> typeVisitor(*this); + ApplyVoidVisitor<TypeOutputStreamWriteVisitor<DBusTypeOutputStream>, + Variant<_Types...>, _Types...>::visit(typeVisitor, _value); return (*this); } |