summaryrefslogtreecommitdiffstats
path: root/dummyresource/domainadaptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dummyresource/domainadaptor.cpp')
-rw-r--r--dummyresource/domainadaptor.cpp74
1 files changed, 1 insertions, 73 deletions
diff --git a/dummyresource/domainadaptor.cpp b/dummyresource/domainadaptor.cpp
index b133614..74a8dd6 100644
--- a/dummyresource/domainadaptor.cpp
+++ b/dummyresource/domainadaptor.cpp
@@ -14,55 +14,11 @@
14using namespace DummyCalendar; 14using namespace DummyCalendar;
15using namespace flatbuffers; 15using namespace flatbuffers;
16 16
17//This will become a generic implementation that simply takes the resource buffer and local buffer pointer
18class DummyEventAdaptor : public Akonadi2::ApplicationDomain::BufferAdaptor
19{
20public:
21 DummyEventAdaptor()
22 : BufferAdaptor()
23 {
24
25 }
26
27 void setProperty(const QByteArray &key, const QVariant &value)
28 {
29 if (mResourceMapper && mResourceMapper->mWriteAccessors.contains(key)) {
30 // mResourceMapper->setProperty(key, value, mResourceBuffer);
31 } else {
32 // mLocalMapper.;
33 }
34 }
35
36 virtual QVariant getProperty(const QByteArray &key) const
37 {
38 if (mResourceBuffer && mResourceMapper->mReadAccessors.contains(key)) {
39 return mResourceMapper->getProperty(key, mResourceBuffer);
40 } else if (mLocalBuffer && mLocalMapper->mReadAccessors.contains(key)) {
41 return mLocalMapper->getProperty(key, mLocalBuffer);
42 }
43 qWarning() << "no mapping available for key " << key;
44 return QVariant();
45 }
46
47 virtual QList<QByteArray> availableProperties() const
48 {
49 QList<QByteArray> props;
50 props << mResourceMapper->mReadAccessors.keys();
51 props << mLocalMapper->mReadAccessors.keys();
52 return props;
53 }
54
55 Akonadi2::ApplicationDomain::Buffer::Event const *mLocalBuffer;
56 DummyEvent const *mResourceBuffer;
57
58 QSharedPointer<PropertyMapper<Akonadi2::ApplicationDomain::Buffer::Event> > mLocalMapper;
59 QSharedPointer<PropertyMapper<DummyEvent> > mResourceMapper;
60};
61
62 17
63DummyEventAdaptorFactory::DummyEventAdaptorFactory() 18DummyEventAdaptorFactory::DummyEventAdaptorFactory()
64 : DomainTypeAdaptorFactory() 19 : DomainTypeAdaptorFactory()
65{ 20{
21 //TODO turn this into initializePropertyMapper as well?
66 mResourceMapper = QSharedPointer<PropertyMapper<DummyEvent> >::create(); 22 mResourceMapper = QSharedPointer<PropertyMapper<DummyEvent> >::create();
67 mResourceMapper->mReadAccessors.insert("summary", [](DummyEvent const *buffer) -> QVariant { 23 mResourceMapper->mReadAccessors.insert("summary", [](DummyEvent const *buffer) -> QVariant {
68 if (buffer->summary()) { 24 if (buffer->summary()) {
@@ -70,36 +26,8 @@ DummyEventAdaptorFactory::DummyEventAdaptorFactory()
70 } 26 }
71 return QVariant(); 27 return QVariant();
72 }); 28 });
73 mLocalMapper = QSharedPointer<PropertyMapper<Akonadi2::ApplicationDomain::Buffer::Event> >::create();
74 mLocalMapper->mReadAccessors.insert("summary", [](Akonadi2::ApplicationDomain::Buffer::Event const *buffer) -> QVariant {
75 if (buffer->summary()) {
76 return QString::fromStdString(buffer->summary()->c_str());
77 }
78 return QVariant();
79 });
80 mLocalMapper->mReadAccessors.insert("uid", [](Akonadi2::ApplicationDomain::Buffer::Event const *buffer) -> QVariant {
81 if (buffer->uid()) {
82 return QString::fromStdString(buffer->uid()->c_str());
83 }
84 return QVariant();
85 });
86
87} 29}
88 30
89//TODO pass EntityBuffer instead?
90QSharedPointer<Akonadi2::ApplicationDomain::BufferAdaptor> DummyEventAdaptorFactory::createAdaptor(const Akonadi2::Entity &entity)
91{
92 const auto resourceBuffer = Akonadi2::EntityBuffer::readBuffer<DummyEvent>(entity.resource());
93 const auto localBuffer = Akonadi2::EntityBuffer::readBuffer<Akonadi2::ApplicationDomain::Buffer::Event>(entity.local());
94 // const auto metadataBuffer = Akonadi2::EntityBuffer::readBuffer<Akonadi2::Metadata>(entity.metadata());
95
96 auto adaptor = QSharedPointer<DummyEventAdaptor>::create();
97 adaptor->mLocalBuffer = localBuffer;
98 adaptor->mLocalMapper = mLocalMapper;
99 adaptor->mResourceBuffer = resourceBuffer;
100 adaptor->mResourceMapper = mResourceMapper;
101 return adaptor;
102}
103 31
104void DummyEventAdaptorFactory::createBuffer(const Akonadi2::ApplicationDomain::Event &event, flatbuffers::FlatBufferBuilder &fbb) 32void DummyEventAdaptorFactory::createBuffer(const Akonadi2::ApplicationDomain::Event &event, flatbuffers::FlatBufferBuilder &fbb)
105{ 33{