summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/propertymapper.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/common/propertymapper.h b/common/propertymapper.h
index fbde2d9..fb5accc 100644
--- a/common/propertymapper.h
+++ b/common/propertymapper.h
@@ -79,6 +79,14 @@ public:
79 return propertyToVariant<T>((buffer->*f)()); 79 return propertyToVariant<T>((buffer->*f)());
80 }); 80 });
81 } 81 }
82
83 template <typename T, typename Buffer>
84 void addMapping(const QByteArray &name, bool (Buffer::*f)() const)
85 {
86 addMapping(name, [f](Buffer const *buffer) -> QVariant {
87 return propertyToVariant<T>((buffer->*f)());
88 });
89 }
82private: 90private:
83 QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors; 91 QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors;
84}; 92};
@@ -110,6 +118,16 @@ public:
110 } 118 }
111 119
112 template <typename T> 120 template <typename T>
121 void addMapping(const QByteArray &name, void (BufferBuilder::*f)(bool))
122 {
123 addMapping(name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> {
124 return [value, f](BufferBuilder &builder) {
125 (builder.*f)(value.value<T>());
126 };
127 });
128 }
129
130 template <typename T>
113 void addMapping(const QByteArray &name, void (BufferBuilder::*f)(flatbuffers::Offset<flatbuffers::String>)) 131 void addMapping(const QByteArray &name, void (BufferBuilder::*f)(flatbuffers::Offset<flatbuffers::String>))
114 { 132 {
115 addMapping(name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { 133 addMapping(name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> {