diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-01-07 01:01:42 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2015-01-07 01:01:42 +0100 |
commit | a638278ede2d7af9a073da6ca11ba2efee2a934b (patch) | |
tree | 1c57b81ffe009607cf6bcdbd873bb4137fa2448f /common | |
parent | c73371e12fd127cbc39496b9ffadbcf9b702b600 (diff) | |
download | sink-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.h | 21 | ||||
-rw-r--r-- | common/entitybuffer.cpp | 18 | ||||
-rw-r--r-- | common/entitybuffer.h | 8 |
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 | */ |
179 | class BufferAdaptor { | 179 | class BufferAdaptor { |
180 | public: | 180 | public: |
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 | |||
186 | class MemoryBufferAdaptor : public BufferAdaptor { | ||
187 | public: | ||
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 | |||
200 | private: | ||
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 | ||
26 | const flatbuffers::Vector<uint8_t>* EntityBuffer::resourceBuffer() | 26 | const 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 | ||
35 | const flatbuffers::Vector<uint8_t>* EntityBuffer::metadataBuffer() | 35 | const 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 | ||
43 | const flatbuffers::Vector<uint8_t>* EntityBuffer::localBuffer() | 43 | const 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 | ||
51 | void EntityBuffer::extractResourceBuffer(void *dataValue, int dataSize, const std::function<void(const flatbuffers::Vector<uint8_t> *)> &handler) | 51 | void 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; | |||
9 | class EntityBuffer { | 9 | class EntityBuffer { |
10 | public: | 10 | public: |
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 | ||
20 | private: | 20 | private: |