diff options
Diffstat (limited to 'dummyresource/domainadaptor.cpp')
-rw-r--r-- | dummyresource/domainadaptor.cpp | 74 |
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 @@ | |||
14 | using namespace DummyCalendar; | 14 | using namespace DummyCalendar; |
15 | using namespace flatbuffers; | 15 | using namespace flatbuffers; |
16 | 16 | ||
17 | //This will become a generic implementation that simply takes the resource buffer and local buffer pointer | ||
18 | class DummyEventAdaptor : public Akonadi2::ApplicationDomain::BufferAdaptor | ||
19 | { | ||
20 | public: | ||
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 | ||
63 | DummyEventAdaptorFactory::DummyEventAdaptorFactory() | 18 | DummyEventAdaptorFactory::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? | ||
90 | QSharedPointer<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 | ||
104 | void DummyEventAdaptorFactory::createBuffer(const Akonadi2::ApplicationDomain::Event &event, flatbuffers::FlatBufferBuilder &fbb) | 32 | void DummyEventAdaptorFactory::createBuffer(const Akonadi2::ApplicationDomain::Event &event, flatbuffers::FlatBufferBuilder &fbb) |
105 | { | 33 | { |