summaryrefslogtreecommitdiffstats
path: root/examples/dummyresource/resourcefactory.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-11-19 17:37:39 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-11-19 17:37:39 +0100
commit8d5684292ef92f32487ba32df716a00c4a0841b5 (patch)
tree1af55d3216f79175a55c1890d75cef2ae1f041d0 /examples/dummyresource/resourcefactory.cpp
parentef205affdb73bfdbef5830996e6336e583660fbc (diff)
downloadsink-8d5684292ef92f32487ba32df716a00c4a0841b5.tar.gz
sink-8d5684292ef92f32487ba32df716a00c4a0841b5.zip
Loading data with the new model for the test client
Diffstat (limited to 'examples/dummyresource/resourcefactory.cpp')
-rw-r--r--examples/dummyresource/resourcefactory.cpp24
1 files changed, 24 insertions, 0 deletions
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 });