#include "domainadaptor.h" #include #include #include "dummycalendar_generated.h" #include "event_generated.h" #include "entity_generated.h" #include "metadata_generated.h" #include "domainadaptor.h" #include "log.h" #include using namespace DummyCalendar; using namespace flatbuffers; DummyEventAdaptorFactory::DummyEventAdaptorFactory() : DomainTypeAdaptorFactory() { //TODO turn this into initializeReadPropertyMapper as well? mResourceMapper->addMapping("summary", [](DummyEvent const *buffer) -> QVariant { return propertyToVariant(buffer->summary()); }); mResourceWriteMapper->addMapping("summary", [](const QVariant &value, flatbuffers::FlatBufferBuilder &fbb) -> std::function { auto offset = variantToProperty(value, fbb); return [offset](DummyEventBuilder &builder) { builder.add_summary(offset); }; }); } void DummyEventAdaptorFactory::createBuffer(const Akonadi2::ApplicationDomain::Event &event, flatbuffers::FlatBufferBuilder &fbb) { flatbuffers::FlatBufferBuilder localFbb; if (mLocalWriteMapper) { auto pos = createBufferPart(event, localFbb, *mLocalWriteMapper); Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(localFbb, pos); flatbuffers::Verifier verifier(localFbb.GetBufferPointer(), localFbb.GetSize()); if (!verifier.VerifyBuffer()) { Warning() << "Created invalid local buffer"; } } flatbuffers::FlatBufferBuilder resFbb; if (mResourceWriteMapper) { auto pos = createBufferPart(event, resFbb, *mResourceWriteMapper); DummyCalendar::FinishDummyEventBuffer(resFbb, pos); flatbuffers::Verifier verifier(resFbb.GetBufferPointer(), resFbb.GetSize()); if (!verifier.VerifyBuffer()) { Warning() << "Created invalid resource buffer"; } } Akonadi2::EntityBuffer::assembleEntityBuffer(fbb, 0, 0, resFbb.GetBufferPointer(), resFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize()); }