From 44edbee0f0b2fcf13e2ee388a90a8dd1f84a329e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 1 Dec 2015 11:10:37 +0100 Subject: Resolve remoteIds during sync Remote id's need to be resolved while syncing any references. This is done by the synchronizer by consulting the rid to entity id mapping. If the referenced entity doesn't exist yet we create a local id anyways, that we then need to pick up once the actual entity arrives. --- examples/dummyresource/dummystore.cpp | 7 ++++++- examples/dummyresource/resourcefactory.cpp | 22 ++++++++++++++++++++-- examples/dummyresource/resourcefactory.h | 1 + 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/dummyresource/dummystore.cpp b/examples/dummyresource/dummystore.cpp index 458695f..8592a30 100644 --- a/examples/dummyresource/dummystore.cpp +++ b/examples/dummyresource/dummystore.cpp @@ -64,9 +64,14 @@ QMap > populateMails() QMap > populateFolders() { QMap> content; - for (int i = 0; i < 5; i++) { + int i = 0; + for (i = 0; i < 5; i++) { content.insert(QString("key%1").arg(i), createFolder(i)); } + i++; + auto folder = createFolder(i); + folder.insert("parent", "key0"); + content.insert(QString("key%1").arg(i), folder); return content; } diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp index e524c3f..8dae749 100644 --- a/examples/dummyresource/resourcefactory.cpp +++ b/examples/dummyresource/resourcefactory.cpp @@ -36,6 +36,7 @@ #include "definitions.h" #include "facadefactory.h" #include +#include //This is the resources entity type, and not the domain type #define ENTITY_TYPE_EVENT "event" @@ -182,6 +183,19 @@ void DummyResource::createMail(const QByteArray &ridBuffer, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb) { //Map the source format to the buffer format (which happens to be an exact copy here) @@ -190,7 +204,8 @@ void DummyResource::createFolder(const QByteArray &ridBuffer, const QMap(fbb.GetBufferPointer()), fbb.GetSize())); diff --git a/examples/dummyresource/resourcefactory.h b/examples/dummyresource/resourcefactory.h index 67681ae..f7882ca 100644 --- a/examples/dummyresource/resourcefactory.h +++ b/examples/dummyresource/resourcefactory.h @@ -36,6 +36,7 @@ public: KAsync::Job synchronizeWithSource() Q_DECL_OVERRIDE; static void removeFromDisk(const QByteArray &instanceIdentifier); private: + QString resolveRemoteId(const QString &remoteId); void createEvent(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); void createMail(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); void createFolder(const QByteArray &rid, const QMap &data, flatbuffers::FlatBufferBuilder &entityFbb); -- cgit v1.2.3