diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-09-09 00:36:25 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-09-09 00:36:25 +0200 |
commit | c1e254e894144d08ad2dc560f9c1e3c719eea1f1 (patch) | |
tree | b2a19e9264481614f74855b1a6ed9639e2fc3f6d /common/propertymapper.h | |
parent | 0233762ec425afd5792d02c822e5c990b01c119c (diff) | |
download | sink-c1e254e894144d08ad2dc560f9c1e3c719eea1f1.tar.gz sink-c1e254e894144d08ad2dc560f9c1e3c719eea1f1.zip |
Conciser PropertyMapper::addMapping notation
Diffstat (limited to 'common/propertymapper.h')
-rw-r--r-- | common/propertymapper.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/common/propertymapper.h b/common/propertymapper.h index 72468e2..87c7485 100644 --- a/common/propertymapper.h +++ b/common/propertymapper.h | |||
@@ -63,6 +63,22 @@ public: | |||
63 | void addMapping(const QByteArray &property, const std::function<QVariant(BufferType const *)> &mapping) { | 63 | void addMapping(const QByteArray &property, const std::function<QVariant(BufferType const *)> &mapping) { |
64 | mReadAccessors.insert(property, mapping); | 64 | mReadAccessors.insert(property, mapping); |
65 | } | 65 | } |
66 | |||
67 | template <typename T, typename Buffer> | ||
68 | void addMapping(const QByteArray &name, const flatbuffers::String *(Buffer::*f)() const) | ||
69 | { | ||
70 | addMapping(name, [f](Buffer const *buffer) -> QVariant { | ||
71 | return propertyToVariant<T>((buffer->*f)()); | ||
72 | }); | ||
73 | } | ||
74 | |||
75 | template <typename T, typename Buffer> | ||
76 | void addMapping(const QByteArray &name, uint8_t (Buffer::*f)() const) | ||
77 | { | ||
78 | addMapping(name, [f](Buffer const *buffer) -> QVariant { | ||
79 | return propertyToVariant<T>((buffer->*f)()); | ||
80 | }); | ||
81 | } | ||
66 | private: | 82 | private: |
67 | QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors; | 83 | QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors; |
68 | }; | 84 | }; |