summaryrefslogtreecommitdiffstats
path: root/examples/dummyresource
diff options
context:
space:
mode:
Diffstat (limited to 'examples/dummyresource')
-rw-r--r--examples/dummyresource/dummystore.h2
-rw-r--r--examples/dummyresource/resourcefactory.cpp24
-rw-r--r--examples/dummyresource/resourcefactory.h1
3 files changed, 26 insertions, 1 deletions
diff --git a/examples/dummyresource/dummystore.h b/examples/dummyresource/dummystore.h
index 4ecd5ea..c730118 100644
--- a/examples/dummyresource/dummystore.h
+++ b/examples/dummyresource/dummystore.h
@@ -23,7 +23,6 @@
23class DummyStore 23class DummyStore
24{ 24{
25public: 25public:
26 //TODO proper singleton
27 static DummyStore &instance() 26 static DummyStore &instance()
28 { 27 {
29 static DummyStore instance; 28 static DummyStore instance;
@@ -32,4 +31,5 @@ public:
32 31
33 QMap<QString, QMap<QString, QVariant> > events() const; 32 QMap<QString, QMap<QString, QVariant> > events() const;
34 QMap<QString, QMap<QString, QVariant> > mails() const; 33 QMap<QString, QMap<QString, QVariant> > mails() const;
34 QMap<QString, QMap<QString, QVariant> > folders() const;
35}; 35};
diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp
index bed1d71..2a5a3e8 100644
--- a/examples/dummyresource/resourcefactory.cpp
+++ b/examples/dummyresource/resourcefactory.cpp
@@ -163,6 +163,27 @@ void DummyResource::createMail(const QByteArray &ridBuffer, const QMap<QString,
163 Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize()); 163 Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize());
164} 164}
165 165
166void DummyResource::createFolder(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb)
167{
168 //Map the source format to the buffer format (which happens to be an exact copy here)
169 auto name = m_fbb.CreateString(data.value("name").toString().toStdString());
170 flatbuffers::Offset<flatbuffers::String> parent;
171 bool hasParent = false;
172 if (!data.value("parent").toString().isEmpty()) {
173 hasParent = true;
174 parent = m_fbb.CreateString(data.value("parent").toString().toStdString());
175 }
176
177 auto builder = Akonadi2::ApplicationDomain::Buffer::FolderBuilder(m_fbb);
178 builder.add_name(name);
179 if (hasParent) {
180 builder.add_parent(parent);
181 }
182 auto buffer = builder.Finish();
183 Akonadi2::ApplicationDomain::Buffer::FinishFolderBuffer(m_fbb, buffer);
184 Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, 0, 0, m_fbb.GetBufferPointer(), m_fbb.GetSize());
185}
186
166void DummyResource::synchronize(const QString &bufferType, const QMap<QString, QMap<QString, QVariant> > &data, Akonadi2::Storage::Transaction &transaction, std::function<void(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity) 187void DummyResource::synchronize(const QString &bufferType, const QMap<QString, QMap<QString, QVariant> > &data, Akonadi2::Storage::Transaction &transaction, std::function<void(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity)
167{ 188{
168 Index uidIndex("index.uid", transaction); 189 Index uidIndex("index.uid", transaction);
@@ -209,6 +230,9 @@ KAsync::Job<void> DummyResource::synchronizeWithSource()
209 synchronize(ENTITY_TYPE_MAIL, DummyStore::instance().mails(), transaction, [this](const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb) { 230 synchronize(ENTITY_TYPE_MAIL, DummyStore::instance().mails(), transaction, [this](const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb) {
210 createMail(ridBuffer, data, entityFbb); 231 createMail(ridBuffer, data, entityFbb);
211 }); 232 });
233 synchronize(ENTITY_TYPE_FOLDER, DummyStore::instance().folders(), transaction, [this](const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb) {
234 createFolder(ridBuffer, data, entityFbb);
235 });
212 236
213 f.setFinished(); 237 f.setFinished();
214 }); 238 });
diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h
index 196d29a..67681ae 100644
--- a/examples/dummyresource/resourcefactory.h
+++ b/examples/dummyresource/resourcefactory.h
@@ -38,6 +38,7 @@ public:
38private: 38private:
39 void createEvent(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb); 39 void createEvent(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb);
40 void createMail(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb); 40 void createMail(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb);
41 void createFolder(const QByteArray &rid, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb);
41 void synchronize(const QString &bufferType, const QMap<QString, QMap<QString, QVariant> > &data, Akonadi2::Storage::Transaction &transaction, std::function<void(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity); 42 void synchronize(const QString &bufferType, const QMap<QString, QMap<QString, QVariant> > &data, Akonadi2::Storage::Transaction &transaction, std::function<void(const QByteArray &ridBuffer, const QMap<QString, QVariant> &data, flatbuffers::FlatBufferBuilder &entityFbb)> createEntity);
42}; 43};
43 44