diff options
Diffstat (limited to 'dummyresource/domainadaptor.cpp')
-rw-r--r-- | dummyresource/domainadaptor.cpp | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/dummyresource/domainadaptor.cpp b/dummyresource/domainadaptor.cpp index ec5e2be..d902052 100644 --- a/dummyresource/domainadaptor.cpp +++ b/dummyresource/domainadaptor.cpp | |||
@@ -40,9 +40,10 @@ public: | |||
40 | { | 40 | { |
41 | if (mResourceBuffer && mResourceMapper->mReadAccessors.contains(key)) { | 41 | if (mResourceBuffer && mResourceMapper->mReadAccessors.contains(key)) { |
42 | return mResourceMapper->getProperty(key, mResourceBuffer); | 42 | return mResourceMapper->getProperty(key, mResourceBuffer); |
43 | } else if (mLocalBuffer) { | 43 | } else if (mLocalBuffer && mLocalMapper->mReadAccessors.contains(key)) { |
44 | return mLocalMapper->getProperty(key, mLocalBuffer); | 44 | return mLocalMapper->getProperty(key, mLocalBuffer); |
45 | } | 45 | } |
46 | qWarning() << "no mapping available for key " << key; | ||
46 | return QVariant(); | 47 | return QVariant(); |
47 | } | 48 | } |
48 | 49 | ||
@@ -67,14 +68,23 @@ DummyEventAdaptorFactory::DummyEventAdaptorFactory() | |||
67 | { | 68 | { |
68 | mResourceMapper = QSharedPointer<PropertyMapper<DummyEvent> >::create(); | 69 | mResourceMapper = QSharedPointer<PropertyMapper<DummyEvent> >::create(); |
69 | mResourceMapper->mReadAccessors.insert("summary", [](DummyEvent const *buffer) -> QVariant { | 70 | mResourceMapper->mReadAccessors.insert("summary", [](DummyEvent const *buffer) -> QVariant { |
70 | return QString::fromStdString(buffer->summary()->c_str()); | 71 | if (buffer->summary()) { |
72 | return QString::fromStdString(buffer->summary()->c_str()); | ||
73 | } | ||
74 | return QVariant(); | ||
71 | }); | 75 | }); |
72 | mLocalMapper = QSharedPointer<PropertyMapper<Akonadi2::Domain::Buffer::Event> >::create(); | 76 | mLocalMapper = QSharedPointer<PropertyMapper<Akonadi2::Domain::Buffer::Event> >::create(); |
73 | mLocalMapper->mReadAccessors.insert("summary", [](Akonadi2::Domain::Buffer::Event const *buffer) -> QVariant { | 77 | mLocalMapper->mReadAccessors.insert("summary", [](Akonadi2::Domain::Buffer::Event const *buffer) -> QVariant { |
74 | return QString::fromStdString(buffer->summary()->c_str()); | 78 | if (buffer->summary()) { |
79 | return QString::fromStdString(buffer->summary()->c_str()); | ||
80 | } | ||
81 | return QVariant(); | ||
75 | }); | 82 | }); |
76 | mLocalMapper->mReadAccessors.insert("uid", [](Akonadi2::Domain::Buffer::Event const *buffer) -> QVariant { | 83 | mLocalMapper->mReadAccessors.insert("uid", [](Akonadi2::Domain::Buffer::Event const *buffer) -> QVariant { |
77 | return QString::fromStdString(buffer->uid()->c_str()); | 84 | if (buffer->uid()) { |
85 | return QString::fromStdString(buffer->uid()->c_str()); | ||
86 | } | ||
87 | return QVariant(); | ||
78 | }); | 88 | }); |
79 | 89 | ||
80 | } | 90 | } |
@@ -94,7 +104,7 @@ QSharedPointer<Akonadi2::Domain::BufferAdaptor> DummyEventAdaptorFactory::create | |||
94 | if (auto metadataData = entity.metadata()) { | 104 | if (auto metadataData = entity.metadata()) { |
95 | flatbuffers::Verifier verifyer(metadataData->Data(), metadataData->size()); | 105 | flatbuffers::Verifier verifyer(metadataData->Data(), metadataData->size()); |
96 | if (Akonadi2::VerifyMetadataBuffer(verifyer)) { | 106 | if (Akonadi2::VerifyMetadataBuffer(verifyer)) { |
97 | metadataBuffer = Akonadi2::GetMetadata(metadataData); | 107 | metadataBuffer = Akonadi2::GetMetadata(metadataData->Data()); |
98 | } | 108 | } |
99 | } | 109 | } |
100 | 110 | ||
@@ -102,15 +112,15 @@ QSharedPointer<Akonadi2::Domain::BufferAdaptor> DummyEventAdaptorFactory::create | |||
102 | if (auto localData = entity.local()) { | 112 | if (auto localData = entity.local()) { |
103 | flatbuffers::Verifier verifyer(localData->Data(), localData->size()); | 113 | flatbuffers::Verifier verifyer(localData->Data(), localData->size()); |
104 | if (Akonadi2::Domain::Buffer::VerifyEventBuffer(verifyer)) { | 114 | if (Akonadi2::Domain::Buffer::VerifyEventBuffer(verifyer)) { |
105 | localBuffer = Akonadi2::Domain::Buffer::GetEvent(localData); | 115 | localBuffer = Akonadi2::Domain::Buffer::GetEvent(localData->Data()); |
106 | } | 116 | } |
107 | } | 117 | } |
108 | 118 | ||
109 | auto adaptor = QSharedPointer<DummyEventAdaptor>::create(); | 119 | auto adaptor = QSharedPointer<DummyEventAdaptor>::create(); |
110 | adaptor->mLocalBuffer = localBuffer; | 120 | adaptor->mLocalBuffer = localBuffer; |
121 | adaptor->mLocalMapper = mLocalMapper; | ||
111 | adaptor->mResourceBuffer = resourceBuffer; | 122 | adaptor->mResourceBuffer = resourceBuffer; |
112 | adaptor->mResourceMapper = mResourceMapper; | 123 | adaptor->mResourceMapper = mResourceMapper; |
113 | adaptor->mLocalMapper = mLocalMapper; | ||
114 | return adaptor; | 124 | return adaptor; |
115 | } | 125 | } |
116 | 126 | ||
@@ -135,6 +145,6 @@ void DummyEventAdaptorFactory::createBuffer(const Akonadi2::Domain::Event &event | |||
135 | Akonadi2::Domain::Buffer::FinishEventBuffer(localFbb, location); | 145 | Akonadi2::Domain::Buffer::FinishEventBuffer(localFbb, location); |
136 | } | 146 | } |
137 | 147 | ||
138 | Akonadi2::EntityBuffer::assembleEntityBuffer(fbb, localFbb.GetBufferPointer(), localFbb.GetSize(), eventFbb.GetBufferPointer(), eventFbb.GetSize(), 0, 0); | 148 | Akonadi2::EntityBuffer::assembleEntityBuffer(fbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize()); |
139 | } | 149 | } |
140 | 150 | ||