summaryrefslogtreecommitdiffstats
path: root/common/propertymapper.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-14 11:38:03 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-14 11:38:22 +0100
commit1ec122d6579a6f1850753a2b72ae04d4bd9981a0 (patch)
tree188179f78d0f97319641d3f8e9d0a1c53c418df7 /common/propertymapper.h
parent6ad73b1e3d37532cda65312f455e82fe6764db0b (diff)
downloadsink-1ec122d6579a6f1850753a2b72ae04d4bd9981a0.tar.gz
sink-1ec122d6579a6f1850753a2b72ae04d4bd9981a0.zip
Build with latest flatbuffers
We now have actual booleans
Diffstat (limited to 'common/propertymapper.h')
-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 &)> {