summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/dummyresource/resourcefactory.cpp27
1 files changed, 11 insertions, 16 deletions
diff --git a/examples/dummyresource/resourcefactory.cpp b/examples/dummyresource/resourcefactory.cpp
index 65b3c66..cfbcdae 100644
--- a/examples/dummyresource/resourcefactory.cpp
+++ b/examples/dummyresource/resourcefactory.cpp
@@ -41,6 +41,13 @@
41#define ENTITY_TYPE_EVENT "event" 41#define ENTITY_TYPE_EVENT "event"
42#define ENTITY_TYPE_MAIL "mail" 42#define ENTITY_TYPE_MAIL "mail"
43 43
44static void index(const QByteArray &index, const QVariant &value, const QByteArray &uid, Akonadi2::Storage::Transaction &transaction)
45{
46 if (value.isValid()) {
47 Index(index, transaction).add(value.toByteArray(), uid);
48 }
49}
50
44DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline) 51DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline)
45 : Akonadi2::GenericResource(instanceIdentifier, pipeline) 52 : Akonadi2::GenericResource(instanceIdentifier, pipeline)
46{ 53{
@@ -48,15 +55,9 @@ DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QShared
48 const auto resourceIdentifier = mResourceInstanceIdentifier; 55 const auto resourceIdentifier = mResourceInstanceIdentifier;
49 56
50 auto eventIndexer = new Akonadi2::SimpleProcessor("eventIndexer", [eventFactory, resourceIdentifier](const Akonadi2::PipelineState &state, const Akonadi2::Entity &entity, Akonadi2::Storage::Transaction &transaction) { 57 auto eventIndexer = new Akonadi2::SimpleProcessor("eventIndexer", [eventFactory, resourceIdentifier](const Akonadi2::PipelineState &state, const Akonadi2::Entity &entity, Akonadi2::Storage::Transaction &transaction) {
51 auto adaptor = eventFactory->createAdaptor(entity); 58 Akonadi2::ApplicationDomain::Event event(resourceIdentifier, state.key(), -1, eventFactory->createAdaptor(entity));
52 Akonadi2::ApplicationDomain::Event event(resourceIdentifier, state.key(), -1, adaptor);
53 Akonadi2::ApplicationDomain::TypeImplementation<Akonadi2::ApplicationDomain::Event>::index(event, transaction); 59 Akonadi2::ApplicationDomain::TypeImplementation<Akonadi2::ApplicationDomain::Event>::index(event, transaction);
54 60 index("event.index.rid", event.getProperty("remoteId"), event.identifier(), transaction);
55 Index ridIndex("index.rid", transaction);
56 const auto rid = event.getProperty("remoteId");
57 if (rid.isValid()) {
58 ridIndex.add(rid.toByteArray(), event.identifier());
59 }
60 }); 61 });
61 62
62 mPipeline->setPreprocessors(ENTITY_TYPE_EVENT, Akonadi2::Pipeline::NewPipeline, QVector<Akonadi2::Preprocessor*>() << eventIndexer); 63 mPipeline->setPreprocessors(ENTITY_TYPE_EVENT, Akonadi2::Pipeline::NewPipeline, QVector<Akonadi2::Preprocessor*>() << eventIndexer);
@@ -66,15 +67,9 @@ DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QShared
66 { 67 {
67 auto mailFactory = QSharedPointer<DummyMailAdaptorFactory>::create(); 68 auto mailFactory = QSharedPointer<DummyMailAdaptorFactory>::create();
68 auto mailIndexer = new Akonadi2::SimpleProcessor("mailIndexer", [mailFactory, resourceIdentifier](const Akonadi2::PipelineState &state, const Akonadi2::Entity &entity, Akonadi2::Storage::Transaction &transaction) { 69 auto mailIndexer = new Akonadi2::SimpleProcessor("mailIndexer", [mailFactory, resourceIdentifier](const Akonadi2::PipelineState &state, const Akonadi2::Entity &entity, Akonadi2::Storage::Transaction &transaction) {
69 auto adaptor = mailFactory->createAdaptor(entity); 70 Akonadi2::ApplicationDomain::Mail mail(resourceIdentifier, state.key(), -1, mailFactory->createAdaptor(entity));
70 Akonadi2::ApplicationDomain::Mail mail(resourceIdentifier, state.key(), -1, adaptor);
71 Akonadi2::ApplicationDomain::TypeImplementation<Akonadi2::ApplicationDomain::Mail>::index(mail, transaction); 71 Akonadi2::ApplicationDomain::TypeImplementation<Akonadi2::ApplicationDomain::Mail>::index(mail, transaction);
72 72 index("mail.index.rid", mail.getProperty("remoteId"), mail.identifier(), transaction);
73 Index ridIndex("mail.index.rid", transaction);
74 const auto rid = mail.getProperty("remoteId");
75 if (rid.isValid()) {
76 ridIndex.add(rid.toByteArray(), mail.identifier());
77 }
78 }); 73 });
79 74
80 mPipeline->setPreprocessors(ENTITY_TYPE_MAIL, Akonadi2::Pipeline::NewPipeline, QVector<Akonadi2::Preprocessor*>() << mailIndexer); 75 mPipeline->setPreprocessors(ENTITY_TYPE_MAIL, Akonadi2::Pipeline::NewPipeline, QVector<Akonadi2::Preprocessor*>() << mailIndexer);