summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/client/main.cpp7
-rw-r--r--examples/dummyresource/dummystore.h2
-rw-r--r--examples/dummyresource/resourcefactory.cpp24
-rw-r--r--examples/dummyresource/resourcefactory.h1
4 files changed, 30 insertions, 4 deletions
diff --git a/examples/client/main.cpp b/examples/client/main.cpp
index 75fcf18..794fc58 100644
--- a/examples/client/main.cpp
+++ b/examples/client/main.cpp
@@ -25,6 +25,7 @@
25#include "common/resource.h" 25#include "common/resource.h"
26#include "common/storage.h" 26#include "common/storage.h"
27#include "common/domain/event.h" 27#include "common/domain/event.h"
28#include "common/domain/folder.h"
28#include "common/resourceconfig.h" 29#include "common/resourceconfig.h"
29#include "console.h" 30#include "console.h"
30 31
@@ -124,10 +125,10 @@ int main(int argc, char *argv[])
124 query.syncOnDemand = false; 125 query.syncOnDemand = false;
125 query.processAll = false; 126 query.processAll = false;
126 query.liveQuery = true; 127 query.liveQuery = true;
127 query.requestedProperties << "summary" << "uid"; 128 query.requestedProperties << "name";
128 129
129 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Event>(query); 130 auto model = Akonadi2::Store::loadModel<Akonadi2::ApplicationDomain::Folder>(query);
130 auto view = QSharedPointer<View<Akonadi2::ApplicationDomain::Event> >::create(model.data()); 131 auto view = QSharedPointer<View<Akonadi2::ApplicationDomain::Folder> >::create(model.data());
131 132
132 return app.exec(); 133 return app.exec();
133} 134}
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