summaryrefslogtreecommitdiffstats
path: root/common/propertymapper.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-09-09 00:36:25 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-09-09 00:36:25 +0200
commitc1e254e894144d08ad2dc560f9c1e3c719eea1f1 (patch)
treeb2a19e9264481614f74855b1a6ed9639e2fc3f6d /common/propertymapper.h
parent0233762ec425afd5792d02c822e5c990b01c119c (diff)
downloadsink-c1e254e894144d08ad2dc560f9c1e3c719eea1f1.tar.gz
sink-c1e254e894144d08ad2dc560f9c1e3c719eea1f1.zip
Conciser PropertyMapper::addMapping notation
Diffstat (limited to 'common/propertymapper.h')
-rw-r--r--common/propertymapper.h16
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 }
66private: 82private:
67 QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors; 83 QHash<QByteArray, std::function<QVariant(BufferType const *)> > mReadAccessors;
68}; 84};