diff options
-rw-r--r-- | common/domain/event.cpp | 10 | ||||
-rw-r--r-- | common/domain/folder.cpp | 15 | ||||
-rw-r--r-- | common/domain/mail.cpp | 16 | ||||
-rw-r--r-- | common/propertymapper.h | 11 |
4 files changed, 24 insertions, 28 deletions
diff --git a/common/domain/event.cpp b/common/domain/event.cpp index 42c13e2..3036d8e 100644 --- a/common/domain/event.cpp +++ b/common/domain/event.cpp | |||
@@ -78,13 +78,7 @@ QSharedPointer<ReadPropertyMapper<TypeImplementation<Event>::Buffer> > TypeImple | |||
78 | QSharedPointer<WritePropertyMapper<TypeImplementation<Event>::BufferBuilder> > TypeImplementation<Event>::initializeWritePropertyMapper() | 78 | QSharedPointer<WritePropertyMapper<TypeImplementation<Event>::BufferBuilder> > TypeImplementation<Event>::initializeWritePropertyMapper() |
79 | { | 79 | { |
80 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | 80 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); |
81 | propertyMapper->addMapping("summary", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 81 | propertyMapper->addMapping<QString>("summary", &BufferBuilder::add_summary); |
82 | auto offset = variantToProperty<QString>(value, fbb); | 82 | propertyMapper->addMapping<QString>("uid", &BufferBuilder::add_uid); |
83 | return [offset](BufferBuilder &builder) { builder.add_summary(offset); }; | ||
84 | }); | ||
85 | propertyMapper->addMapping("uid", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
86 | auto offset = variantToProperty<QString>(value, fbb); | ||
87 | return [offset](BufferBuilder &builder) { builder.add_uid(offset); }; | ||
88 | }); | ||
89 | return propertyMapper; | 83 | return propertyMapper; |
90 | } | 84 | } |
diff --git a/common/domain/folder.cpp b/common/domain/folder.cpp index 5558060..80e9f8f 100644 --- a/common/domain/folder.cpp +++ b/common/domain/folder.cpp | |||
@@ -89,17 +89,8 @@ QSharedPointer<ReadPropertyMapper<TypeImplementation<Folder>::Buffer> > TypeImpl | |||
89 | QSharedPointer<WritePropertyMapper<TypeImplementation<Folder>::BufferBuilder> > TypeImplementation<Folder>::initializeWritePropertyMapper() | 89 | QSharedPointer<WritePropertyMapper<TypeImplementation<Folder>::BufferBuilder> > TypeImplementation<Folder>::initializeWritePropertyMapper() |
90 | { | 90 | { |
91 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | 91 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); |
92 | propertyMapper->addMapping("parent", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 92 | propertyMapper->addMapping<QByteArray>("parent", &BufferBuilder::add_parent); |
93 | auto offset = variantToProperty<QByteArray>(value, fbb); | 93 | propertyMapper->addMapping<QString>("name", &BufferBuilder::add_name); |
94 | return [offset](BufferBuilder &builder) { builder.add_parent(offset); }; | 94 | propertyMapper->addMapping<QByteArray>("icon", &BufferBuilder::add_icon); |
95 | }); | ||
96 | propertyMapper->addMapping("name", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
97 | auto offset = variantToProperty<QString>(value, fbb); | ||
98 | return [offset](BufferBuilder &builder) { builder.add_name(offset); }; | ||
99 | }); | ||
100 | propertyMapper->addMapping("icon", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
101 | auto offset = variantToProperty<QByteArray>(value, fbb); | ||
102 | return [offset](BufferBuilder &builder) { builder.add_icon(offset); }; | ||
103 | }); | ||
104 | return propertyMapper; | 95 | return propertyMapper; |
105 | } | 96 | } |
diff --git a/common/domain/mail.cpp b/common/domain/mail.cpp index 5373ac6..59b75ea 100644 --- a/common/domain/mail.cpp +++ b/common/domain/mail.cpp | |||
@@ -83,13 +83,13 @@ QSharedPointer<ReadPropertyMapper<TypeImplementation<Mail>::Buffer> > TypeImplem | |||
83 | QSharedPointer<WritePropertyMapper<TypeImplementation<Mail>::BufferBuilder> > TypeImplementation<Mail>::initializeWritePropertyMapper() | 83 | QSharedPointer<WritePropertyMapper<TypeImplementation<Mail>::BufferBuilder> > TypeImplementation<Mail>::initializeWritePropertyMapper() |
84 | { | 84 | { |
85 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); | 85 | auto propertyMapper = QSharedPointer<WritePropertyMapper<BufferBuilder> >::create(); |
86 | // propertyMapper->addMapping("summary", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 86 | propertyMapper->addMapping<QString>("uid", &BufferBuilder::add_uid); |
87 | // auto offset = variantToProperty<QString>(value, fbb); | 87 | propertyMapper->addMapping<QString>("sender", &BufferBuilder::add_sender); |
88 | // return [offset](BufferBuilder &builder) { builder.add_summary(offset); }; | 88 | propertyMapper->addMapping<QString>("senderName", &BufferBuilder::add_senderName); |
89 | // }); | 89 | propertyMapper->addMapping<QString>("subject", &BufferBuilder::add_subject); |
90 | propertyMapper->addMapping("uid", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | 90 | propertyMapper->addMapping<QString>("date", &BufferBuilder::add_date); |
91 | auto offset = variantToProperty<QString>(value, fbb); | 91 | // propertyMapper->addMapping<bool>("unread", &BufferBuilder::add_unread); |
92 | return [offset](BufferBuilder &builder) { builder.add_uid(offset); }; | 92 | // propertyMapper->addMapping<bool>("important", &BufferBuilder::add_important); |
93 | }); | 93 | propertyMapper->addMapping<QString>("folder", &BufferBuilder::add_folder); |
94 | return propertyMapper; | 94 | return propertyMapper; |
95 | } | 95 | } |
diff --git a/common/propertymapper.h b/common/propertymapper.h index 87c7485..98ad397 100644 --- a/common/propertymapper.h +++ b/common/propertymapper.h | |||
@@ -98,6 +98,17 @@ public: | |||
98 | void addMapping(const QByteArray &property, const std::function<std::function<void(BufferBuilder &)>(const QVariant &, flatbuffers::FlatBufferBuilder &)> &mapping) { | 98 | void addMapping(const QByteArray &property, const std::function<std::function<void(BufferBuilder &)>(const QVariant &, flatbuffers::FlatBufferBuilder &)> &mapping) { |
99 | mWriteAccessors.insert(property, mapping); | 99 | mWriteAccessors.insert(property, mapping); |
100 | } | 100 | } |
101 | |||
102 | template <typename T> | ||
103 | void addMapping(const QByteArray &name, void (BufferBuilder::*f)(flatbuffers::Offset<flatbuffers::String>)) | ||
104 | { | ||
105 | addMapping(name, [f](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function<void(BufferBuilder &)> { | ||
106 | auto offset = variantToProperty<T>(value, fbb); | ||
107 | return [offset, f](BufferBuilder &builder) { | ||
108 | (builder.*f)(offset); | ||
109 | }; | ||
110 | }); | ||
111 | } | ||
101 | private: | 112 | private: |
102 | QHash<QByteArray, std::function<std::function<void(BufferBuilder &)>(const QVariant &, flatbuffers::FlatBufferBuilder &)> > mWriteAccessors; | 113 | QHash<QByteArray, std::function<std::function<void(BufferBuilder &)>(const QVariant &, flatbuffers::FlatBufferBuilder &)> > mWriteAccessors; |
103 | }; | 114 | }; |