summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/domain/event.cpp10
-rw-r--r--common/domain/folder.cpp15
-rw-r--r--common/domain/mail.cpp16
-rw-r--r--common/propertymapper.h11
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
78QSharedPointer<WritePropertyMapper<TypeImplementation<Event>::BufferBuilder> > TypeImplementation<Event>::initializeWritePropertyMapper() 78QSharedPointer<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
89QSharedPointer<WritePropertyMapper<TypeImplementation<Folder>::BufferBuilder> > TypeImplementation<Folder>::initializeWritePropertyMapper() 89QSharedPointer<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
83QSharedPointer<WritePropertyMapper<TypeImplementation<Mail>::BufferBuilder> > TypeImplementation<Mail>::initializeWritePropertyMapper() 83QSharedPointer<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 }
101private: 112private:
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};