From 63ca9c4e0be265a4db6b89d444e6fcd8bdd135c1 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 1 Nov 2016 11:23:35 +0100 Subject: Set to/cc/bcc --- common/propertymapper.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'common/propertymapper.h') diff --git a/common/propertymapper.h b/common/propertymapper.h index a63b7e7..70491a1 100644 --- a/common/propertymapper.h +++ b/common/propertymapper.h @@ -52,6 +52,8 @@ template QVariant SINK_EXPORT propertyToVariant(const flatbuffers::Vector> *); template QVariant SINK_EXPORT propertyToVariant(const Sink::ApplicationDomain::Buffer::MailContact *); +template +QVariant SINK_EXPORT propertyToVariant(const flatbuffers::Vector> *); /** * The property mapper is a non-typesafe virtual dispatch. @@ -123,6 +125,12 @@ public: addMapping(T::name, [f](Buffer const *buffer) -> QVariant { return propertyToVariant((buffer->*f)()); }); } + template + void addMapping(const flatbuffers::Vector> *(Buffer::*f)() const) + { + addMapping(T::name, [f](Buffer const *buffer) -> QVariant { return propertyToVariant((buffer->*f)()); }); + } + private: QHash> mReadAccessors; }; @@ -201,6 +209,15 @@ public: }); } + template + void addMapping(void (BufferBuilder::*f)(flatbuffers::Offset>>)) + { + addMapping(T::name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { + auto offset = variantToProperty(value, fbb); + return [offset, f](BufferBuilder &builder) { (builder.*f)(offset); }; + }); + } + private: QHash(const QVariant &, flatbuffers::FlatBufferBuilder &)>> mWriteAccessors; }; -- cgit v1.2.3