diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/commands/createentity.fbs | 1 | ||||
-rw-r--r-- | common/index.cpp | 13 | ||||
-rw-r--r-- | common/index.h | 1 | ||||
-rw-r--r-- | common/pipeline.cpp | 9 | ||||
-rw-r--r-- | common/resourceaccess.cpp | 2 |
5 files changed, 24 insertions, 2 deletions
diff --git a/common/commands/createentity.fbs b/common/commands/createentity.fbs index 23eeff9..a5bc95c 100644 --- a/common/commands/createentity.fbs +++ b/common/commands/createentity.fbs | |||
@@ -1,6 +1,7 @@ | |||
1 | namespace Akonadi2.Commands; | 1 | namespace Akonadi2.Commands; |
2 | 2 | ||
3 | table CreateEntity { | 3 | table CreateEntity { |
4 | entityId: string; | ||
4 | domainType: string; | 5 | domainType: string; |
5 | delta: [ubyte]; | 6 | delta: [ubyte]; |
6 | } | 7 | } |
diff --git a/common/index.cpp b/common/index.cpp index 2fc0fe3..f4de93c 100644 --- a/common/index.cpp +++ b/common/index.cpp | |||
@@ -38,3 +38,16 @@ void Index::lookup(const QByteArray &key, const std::function<void(const QByteAr | |||
38 | ); | 38 | ); |
39 | } | 39 | } |
40 | 40 | ||
41 | QByteArray Index::lookup(const QByteArray &key) | ||
42 | { | ||
43 | QByteArray result; | ||
44 | lookup(key, | ||
45 | [&result](const QByteArray &value) { | ||
46 | result = value; | ||
47 | }, | ||
48 | [](const Index::Error &error) { | ||
49 | qDebug() << "Error while retrieving value" << error.message; | ||
50 | }); | ||
51 | return result; | ||
52 | } | ||
53 | |||
diff --git a/common/index.h b/common/index.h index 0ca32af..6b06d26 100644 --- a/common/index.h +++ b/common/index.h | |||
@@ -33,6 +33,7 @@ public: | |||
33 | 33 | ||
34 | void lookup(const QByteArray &key, const std::function<void(const QByteArray &value)> &resultHandler, | 34 | void lookup(const QByteArray &key, const std::function<void(const QByteArray &value)> &resultHandler, |
35 | const std::function<void(const Error &error)> &errorHandler); | 35 | const std::function<void(const Error &error)> &errorHandler); |
36 | QByteArray lookup(const QByteArray &key); | ||
36 | 37 | ||
37 | private: | 38 | private: |
38 | Q_DISABLE_COPY(Index); | 39 | Q_DISABLE_COPY(Index); |
diff --git a/common/pipeline.cpp b/common/pipeline.cpp index 0ce478b..16d8329 100644 --- a/common/pipeline.cpp +++ b/common/pipeline.cpp | |||
@@ -150,7 +150,14 @@ KAsync::Job<qint64> Pipeline::newEntity(void const *command, size_t size) | |||
150 | return KAsync::error<qint64>(0); | 150 | return KAsync::error<qint64>(0); |
151 | } | 151 | } |
152 | 152 | ||
153 | const auto key = QUuid::createUuid().toString().toUtf8(); | 153 | QByteArray key; |
154 | if (createEntity->entityId()) { | ||
155 | key = QByteArray(reinterpret_cast<char const*>(createEntity->entityId()->Data()), createEntity->entityId()->size()); | ||
156 | } | ||
157 | if (key.isEmpty()) { | ||
158 | key = QUuid::createUuid().toString().toUtf8(); | ||
159 | } | ||
160 | Q_ASSERT(!key.isEmpty()); | ||
154 | const qint64 newRevision = Akonadi2::Storage::maxRevision(d->transaction) + 1; | 161 | const qint64 newRevision = Akonadi2::Storage::maxRevision(d->transaction) + 1; |
155 | 162 | ||
156 | //Add metadata buffer | 163 | //Add metadata buffer |
diff --git a/common/resourceaccess.cpp b/common/resourceaccess.cpp index be25533..8988032 100644 --- a/common/resourceaccess.cpp +++ b/common/resourceaccess.cpp | |||
@@ -296,7 +296,7 @@ KAsync::Job<void> ResourceAccess::sendCreateCommand(const QByteArray &resourceBu | |||
296 | //This is the resource buffer type and not the domain type | 296 | //This is the resource buffer type and not the domain type |
297 | auto type = fbb.CreateString(resourceBufferType.constData()); | 297 | auto type = fbb.CreateString(resourceBufferType.constData()); |
298 | auto delta = Akonadi2::EntityBuffer::appendAsVector(fbb, buffer.constData(), buffer.size()); | 298 | auto delta = Akonadi2::EntityBuffer::appendAsVector(fbb, buffer.constData(), buffer.size()); |
299 | auto location = Akonadi2::Commands::CreateCreateEntity(fbb, type, delta); | 299 | auto location = Akonadi2::Commands::CreateCreateEntity(fbb, 0, type, delta); |
300 | Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location); | 300 | Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location); |
301 | open(); | 301 | open(); |
302 | return sendCommand(Akonadi2::Commands::CreateEntityCommand, fbb); | 302 | return sendCommand(Akonadi2::Commands::CreateEntityCommand, fbb); |