summaryrefslogtreecommitdiffstats
path: root/dummyresource
diff options
context:
space:
mode:
Diffstat (limited to 'dummyresource')
-rw-r--r--dummyresource/domainadaptor.cpp11
-rw-r--r--dummyresource/facade.cpp8
-rw-r--r--dummyresource/resourcefactory.cpp6
3 files changed, 18 insertions, 7 deletions
diff --git a/dummyresource/domainadaptor.cpp b/dummyresource/domainadaptor.cpp
index 5d046ff..ae001cf 100644
--- a/dummyresource/domainadaptor.cpp
+++ b/dummyresource/domainadaptor.cpp
@@ -46,6 +46,14 @@ public:
46 return QVariant(); 46 return QVariant();
47 } 47 }
48 48
49 virtual QStringList availableProperties() const
50 {
51 QStringList props;
52 props << mResourceMapper->mReadAccessors.keys();
53 props << mLocalMapper->mReadAccessors.keys();
54 return props;
55 }
56
49 Akonadi2::Domain::Buffer::Event const *mLocalBuffer; 57 Akonadi2::Domain::Buffer::Event const *mLocalBuffer;
50 DummyEvent const *mResourceBuffer; 58 DummyEvent const *mResourceBuffer;
51 59
@@ -65,13 +73,14 @@ DummyEventAdaptorFactory::DummyEventAdaptorFactory()
65 73
66} 74}
67 75
76//TODO pass EntityBuffer instead?
68QSharedPointer<Akonadi2::Domain::BufferAdaptor> DummyEventAdaptorFactory::createAdaptor(const Akonadi2::Entity &entity) 77QSharedPointer<Akonadi2::Domain::BufferAdaptor> DummyEventAdaptorFactory::createAdaptor(const Akonadi2::Entity &entity)
69{ 78{
70 DummyEvent const *resourceBuffer = 0; 79 DummyEvent const *resourceBuffer = 0;
71 if (auto resourceData = entity.resource()) { 80 if (auto resourceData = entity.resource()) {
72 flatbuffers::Verifier verifyer(resourceData->Data(), resourceData->size()); 81 flatbuffers::Verifier verifyer(resourceData->Data(), resourceData->size());
73 if (VerifyDummyEventBuffer(verifyer)) { 82 if (VerifyDummyEventBuffer(verifyer)) {
74 resourceBuffer = GetDummyEvent(resourceData); 83 resourceBuffer = GetDummyEvent(resourceData->Data());
75 } 84 }
76 } 85 }
77 86
diff --git a/dummyresource/facade.cpp b/dummyresource/facade.cpp
index 5320216..f754c7e 100644
--- a/dummyresource/facade.cpp
+++ b/dummyresource/facade.cpp
@@ -128,7 +128,7 @@ void DummyResourceFacade::load(const Akonadi2::Query &query, const std::function
128 Akonadi2::EntityBuffer buffer(dataValue, dataSize); 128 Akonadi2::EntityBuffer buffer(dataValue, dataSize);
129 129
130 DummyEvent const *resourceBuffer = 0; 130 DummyEvent const *resourceBuffer = 0;
131 if (auto resourceData = buffer.resourceBuffer()) { 131 if (auto resourceData = buffer.entity().resource()) {
132 flatbuffers::Verifier verifyer(resourceData->Data(), resourceData->size()); 132 flatbuffers::Verifier verifyer(resourceData->Data(), resourceData->size());
133 if (VerifyDummyEventBuffer(verifyer)) { 133 if (VerifyDummyEventBuffer(verifyer)) {
134 resourceBuffer = GetDummyEvent(resourceData); 134 resourceBuffer = GetDummyEvent(resourceData);
@@ -136,7 +136,7 @@ void DummyResourceFacade::load(const Akonadi2::Query &query, const std::function
136 } 136 }
137 137
138 Akonadi2::Metadata const *metadataBuffer = 0; 138 Akonadi2::Metadata const *metadataBuffer = 0;
139 if (auto metadataData = buffer.metadataBuffer()) { 139 if (auto metadataData = buffer.entity().metadata()) {
140 flatbuffers::Verifier verifyer(metadataData->Data(), metadataData->size()); 140 flatbuffers::Verifier verifyer(metadataData->Data(), metadataData->size());
141 if (Akonadi2::VerifyMetadataBuffer(verifyer)) { 141 if (Akonadi2::VerifyMetadataBuffer(verifyer)) {
142 metadataBuffer = Akonadi2::GetMetadata(metadataData); 142 metadataBuffer = Akonadi2::GetMetadata(metadataData);
@@ -153,7 +153,9 @@ void DummyResourceFacade::load(const Akonadi2::Query &query, const std::function
153 if (preparedQuery && preparedQuery(std::string(static_cast<char*>(keyValue), keySize), resourceBuffer)) { 153 if (preparedQuery && preparedQuery(std::string(static_cast<char*>(keyValue), keySize), resourceBuffer)) {
154 qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1; 154 qint64 revision = metadataBuffer ? metadataBuffer->revision() : -1;
155 auto adaptor = mFactory->createAdaptor(buffer.entity()); 155 auto adaptor = mFactory->createAdaptor(buffer.entity());
156 auto event = QSharedPointer<Akonadi2::Domain::Event>::create("org.kde.dummy", QString::fromUtf8(static_cast<char*>(keyValue), keySize), revision, adaptor); 156 //TODO only copy requested properties
157 auto memoryAdaptor = QSharedPointer<Akonadi2::Domain::MemoryBufferAdaptor>::create(*adaptor);
158 auto event = QSharedPointer<Akonadi2::Domain::Event>::create("org.kde.dummy", QString::fromUtf8(static_cast<char*>(keyValue), keySize), revision, memoryAdaptor);
157 resultCallback(event); 159 resultCallback(event);
158 } 160 }
159 return true; 161 return true;
diff --git a/dummyresource/resourcefactory.cpp b/dummyresource/resourcefactory.cpp
index 87a6048..e4f7e41 100644
--- a/dummyresource/resourcefactory.cpp
+++ b/dummyresource/resourcefactory.cpp
@@ -122,10 +122,10 @@ void findByRemoteId(QSharedPointer<Akonadi2::Storage> storage, const QString &ri
122 return true; 122 return true;
123 } 123 }
124 124
125 Akonadi2::EntityBuffer::extractResourceBuffer(dataValue, dataSize, [&](const flatbuffers::Vector<uint8_t> *buffer) { 125 Akonadi2::EntityBuffer::extractResourceBuffer(dataValue, dataSize, [&](const uint8_t *buffer, size_t size) {
126 flatbuffers::Verifier verifier(buffer->Data(), buffer->size()); 126 flatbuffers::Verifier verifier(buffer, size);
127 if (DummyCalendar::VerifyDummyEventBuffer(verifier)) { 127 if (DummyCalendar::VerifyDummyEventBuffer(verifier)) {
128 DummyCalendar::DummyEvent const *resourceBuffer = DummyCalendar::GetDummyEvent(buffer->Data()); 128 DummyCalendar::DummyEvent const *resourceBuffer = DummyCalendar::GetDummyEvent(buffer);
129 if (resourceBuffer && resourceBuffer->remoteId()) { 129 if (resourceBuffer && resourceBuffer->remoteId()) {
130 if (std::string(resourceBuffer->remoteId()->c_str(), resourceBuffer->remoteId()->size()) == ridString) { 130 if (std::string(resourceBuffer->remoteId()->c_str(), resourceBuffer->remoteId()->size()) == ridString) {
131 callback(keyValue, keySize, dataValue, dataSize); 131 callback(keyValue, keySize, dataValue, dataSize);