diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/client/main.cpp | 7 | ||||
-rw-r--r-- | examples/dummyresource/dummystore.h | 2 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.cpp | 24 | ||||
-rw-r--r-- | examples/dummyresource/resourcefactory.h | 1 |
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 @@ | |||
23 | class DummyStore | 23 | class DummyStore |
24 | { | 24 | { |
25 | public: | 25 | public: |
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 | ||
166 | void 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 | |||
166 | void 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) | 187 | void 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: | |||
38 | private: | 38 | private: |
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 | ||