summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-01-07 01:01:42 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-01-07 01:01:42 +0100
commita638278ede2d7af9a073da6ca11ba2efee2a934b (patch)
tree1c57b81ffe009607cf6bcdbd873bb4137fa2448f /common
parentc73371e12fd127cbc39496b9ffadbcf9b702b600 (diff)
downloadsink-a638278ede2d7af9a073da6ca11ba2efee2a934b.tar.gz
sink-a638278ede2d7af9a073da6ca11ba2efee2a934b.zip
Made the domain adaptor actually work. We can read stuff now.
Diffstat (limited to 'common')
-rw-r--r--common/clientapi.h21
-rw-r--r--common/entitybuffer.cpp18
-rw-r--r--common/entitybuffer.h8
3 files changed, 33 insertions, 14 deletions
diff --git a/common/clientapi.h b/common/clientapi.h
index ba0cb19..d2b1c9c 100644
--- a/common/clientapi.h
+++ b/common/clientapi.h
@@ -178,8 +178,27 @@ namespace Domain {
178 */ 178 */
179class BufferAdaptor { 179class BufferAdaptor {
180public: 180public:
181 virtual QVariant getProperty(const QString &key) { return QVariant(); } 181 virtual QVariant getProperty(const QString &key) const { return QVariant(); }
182 virtual void setProperty(const QString &key, const QVariant &value) {} 182 virtual void setProperty(const QString &key, const QVariant &value) {}
183 virtual QStringList availableProperties() const { return QStringList(); }
184};
185
186class MemoryBufferAdaptor : public BufferAdaptor {
187public:
188 MemoryBufferAdaptor(const BufferAdaptor &buffer)
189 : BufferAdaptor()
190 {
191 for(const auto &property : buffer.availableProperties()) {
192 mValues.insert(property, buffer.getProperty(property));
193 }
194 }
195
196 virtual QVariant getProperty(const QString &key) const { return mValues.value(key); }
197 virtual void setProperty(const QString &key, const QVariant &value) { mValues.insert(key, value); }
198 virtual QStringList availableProperties() const { return mValues.keys(); }
199
200private:
201 QHash<QString, QVariant> mValues;
183}; 202};
184 203
185/** 204/**
diff --git a/common/entitybuffer.cpp b/common/entitybuffer.cpp
index c5d6bce..aa5847c 100644
--- a/common/entitybuffer.cpp
+++ b/common/entitybuffer.cpp
@@ -23,36 +23,36 @@ const Akonadi2::Entity &EntityBuffer::entity()
23 return *mEntity; 23 return *mEntity;
24} 24}
25 25
26const flatbuffers::Vector<uint8_t>* EntityBuffer::resourceBuffer() 26const uint8_t* EntityBuffer::resourceBuffer()
27{ 27{
28 if (!mEntity) { 28 if (!mEntity) {
29 qDebug() << "no buffer"; 29 qDebug() << "no buffer";
30 return nullptr; 30 return nullptr;
31 } 31 }
32 return mEntity->resource(); 32 return mEntity->resource()->Data();
33} 33}
34 34
35const flatbuffers::Vector<uint8_t>* EntityBuffer::metadataBuffer() 35const uint8_t* EntityBuffer::metadataBuffer()
36{ 36{
37 if (!mEntity) { 37 if (!mEntity) {
38 return nullptr; 38 return nullptr;
39 } 39 }
40 return mEntity->metadata(); 40 return mEntity->metadata()->Data();
41} 41}
42 42
43const flatbuffers::Vector<uint8_t>* EntityBuffer::localBuffer() 43const uint8_t* EntityBuffer::localBuffer()
44{ 44{
45 if (!mEntity) { 45 if (!mEntity) {
46 return nullptr; 46 return nullptr;
47 } 47 }
48 return mEntity->local(); 48 return mEntity->local()->Data();
49} 49}
50 50
51void EntityBuffer::extractResourceBuffer(void *dataValue, int dataSize, const std::function<void(const flatbuffers::Vector<uint8_t> *)> &handler) 51void EntityBuffer::extractResourceBuffer(void *dataValue, int dataSize, const std::function<void(const uint8_t *, size_t size)> &handler)
52{ 52{
53 Akonadi2::EntityBuffer buffer(dataValue, dataSize); 53 Akonadi2::EntityBuffer buffer(dataValue, dataSize);
54 if (auto resourceData = buffer.resourceBuffer()) { 54 if (auto resourceData = buffer.entity().resource()) {
55 handler(resourceData); 55 handler(resourceData->Data(), resourceData->size());
56 } 56 }
57} 57}
58 58
diff --git a/common/entitybuffer.h b/common/entitybuffer.h
index bd9360d..600b04d 100644
--- a/common/entitybuffer.h
+++ b/common/entitybuffer.h
@@ -9,12 +9,12 @@ class Entity;
9class EntityBuffer { 9class EntityBuffer {
10public: 10public:
11 EntityBuffer(void *dataValue, int size); 11 EntityBuffer(void *dataValue, int size);
12 const flatbuffers::Vector<uint8_t> *resourceBuffer(); 12 const uint8_t *resourceBuffer();
13 const flatbuffers::Vector<uint8_t> *metadataBuffer(); 13 const uint8_t *metadataBuffer();
14 const flatbuffers::Vector<uint8_t> *localBuffer(); 14 const uint8_t *localBuffer();
15 const Entity &entity(); 15 const Entity &entity();
16 16
17 static void extractResourceBuffer(void *dataValue, int dataSize, const std::function<void(const flatbuffers::Vector<uint8_t> *)> &handler); 17 static void extractResourceBuffer(void *dataValue, int dataSize, const std::function<void(const uint8_t *, size_t size)> &handler);
18 static void assembleEntityBuffer(flatbuffers::FlatBufferBuilder &fbb, void *metadataData, size_t metadataSize, void *resourceData, size_t resourceSize, void *localData, size_t localSize); 18 static void assembleEntityBuffer(flatbuffers::FlatBufferBuilder &fbb, void *metadataData, size_t metadataSize, void *resourceData, size_t resourceSize, void *localData, size_t localSize);
19 19
20private: 20private: