diff options
-rw-r--r-- | examples/dummyresource/resourcefactory.cpp | 27 |
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 | ||
44 | static 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 | |||
44 | DummyResource::DummyResource(const QByteArray &instanceIdentifier, const QSharedPointer<Akonadi2::Pipeline> &pipeline) | 51 | DummyResource::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); |