From 7b928b25454311ef5b52639a0a2d5d1afefa7cf8 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 6 May 2016 00:03:42 +0200 Subject: Support assigining the uid in the client --- common/facade.cpp | 2 +- common/resourceaccess.cpp | 5 +++-- common/resourceaccess.h | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/common/facade.cpp b/common/facade.cpp index cdd06f9..1045dac 100644 --- a/common/facade.cpp +++ b/common/facade.cpp @@ -64,7 +64,7 @@ KAsync::Job GenericFacade::create(const DomainType &domainObje } flatbuffers::FlatBufferBuilder entityFbb; mDomainTypeAdaptorFactory->createBuffer(domainObject, entityFbb); - return mResourceAccess->sendCreateCommand(bufferTypeForDomainType(), BufferUtils::extractBuffer(entityFbb)); + return mResourceAccess->sendCreateCommand(domainObject.identifier(), bufferTypeForDomainType(), BufferUtils::extractBuffer(entityFbb)); } template diff --git a/common/resourceaccess.cpp b/common/resourceaccess.cpp index 33820af..458694f 100644 --- a/common/resourceaccess.cpp +++ b/common/resourceaccess.cpp @@ -293,13 +293,14 @@ KAsync::Job ResourceAccess::synchronizeResource(bool sourceSync, bool loca return sendCommand(Commands::SynchronizeCommand, fbb); } -KAsync::Job ResourceAccess::sendCreateCommand(const QByteArray &resourceBufferType, const QByteArray &buffer) +KAsync::Job ResourceAccess::sendCreateCommand(const QByteArray &uid, const QByteArray &resourceBufferType, const QByteArray &buffer) { flatbuffers::FlatBufferBuilder fbb; + auto entityId = fbb.CreateString(uid.constData()); // This is the resource buffer type and not the domain type auto type = fbb.CreateString(resourceBufferType.constData()); auto delta = Sink::EntityBuffer::appendAsVector(fbb, buffer.constData(), buffer.size()); - auto location = Sink::Commands::CreateCreateEntity(fbb, 0, type, delta); + auto location = Sink::Commands::CreateCreateEntity(fbb, entityId, type, delta); Sink::Commands::FinishCreateEntityBuffer(fbb, location); open(); return sendCommand(Sink::Commands::CreateEntityCommand, fbb); diff --git a/common/resourceaccess.h b/common/resourceaccess.h index 60f29e9..b9eaacd 100644 --- a/common/resourceaccess.h +++ b/common/resourceaccess.h @@ -50,7 +50,7 @@ public: virtual KAsync::Job sendCommand(int commandId, flatbuffers::FlatBufferBuilder &fbb) = 0; virtual KAsync::Job synchronizeResource(bool remoteSync, bool localSync) = 0; - virtual KAsync::Job sendCreateCommand(const QByteArray &resourceBufferType, const QByteArray &buffer) + virtual KAsync::Job sendCreateCommand(const QByteArray &uid, const QByteArray &resourceBufferType, const QByteArray &buffer) { return KAsync::null(); }; @@ -97,7 +97,7 @@ public: KAsync::Job sendCommand(int commandId) Q_DECL_OVERRIDE; KAsync::Job sendCommand(int commandId, flatbuffers::FlatBufferBuilder &fbb) Q_DECL_OVERRIDE; KAsync::Job synchronizeResource(bool remoteSync, bool localSync) Q_DECL_OVERRIDE; - KAsync::Job sendCreateCommand(const QByteArray &resourceBufferType, const QByteArray &buffer) Q_DECL_OVERRIDE; + KAsync::Job sendCreateCommand(const QByteArray &uid, const QByteArray &resourceBufferType, const QByteArray &buffer) Q_DECL_OVERRIDE; KAsync::Job sendModifyCommand(const QByteArray &uid, qint64 revision, const QByteArray &resourceBufferType, const QByteArrayList &deletedProperties, const QByteArray &buffer) Q_DECL_OVERRIDE; KAsync::Job sendDeleteCommand(const QByteArray &uid, qint64 revision, const QByteArray &resourceBufferType) Q_DECL_OVERRIDE; -- cgit v1.2.3