diff options
Diffstat (limited to 'common/domain')
-rw-r--r-- | common/domain/event.cpp | 8 | ||||
-rw-r--r-- | common/domain/event.h | 6 |
2 files changed, 8 insertions, 6 deletions
diff --git a/common/domain/event.cpp b/common/domain/event.cpp index 15f5d11..e107441 100644 --- a/common/domain/event.cpp +++ b/common/domain/event.cpp | |||
@@ -34,11 +34,11 @@ | |||
34 | 34 | ||
35 | using namespace Akonadi2::ApplicationDomain; | 35 | using namespace Akonadi2::ApplicationDomain; |
36 | 36 | ||
37 | ResultSet TypeImplementation<Event>::queryIndexes(const Akonadi2::Query &query, const QByteArray &resourceInstanceIdentifier, QSet<QByteArray> &appliedFilters) | 37 | ResultSet TypeImplementation<Event>::queryIndexes(const Akonadi2::Query &query, const QByteArray &resourceInstanceIdentifier, QSet<QByteArray> &appliedFilters, Akonadi2::Storage::Transaction &transaction) |
38 | { | 38 | { |
39 | QVector<QByteArray> keys; | 39 | QVector<QByteArray> keys; |
40 | if (query.propertyFilter.contains("uid")) { | 40 | if (query.propertyFilter.contains("uid")) { |
41 | Index uidIndex(Akonadi2::storageLocation(), resourceInstanceIdentifier + ".index.uid", Akonadi2::Storage::ReadOnly); | 41 | Index uidIndex("index.uid", transaction); |
42 | uidIndex.lookup(query.propertyFilter.value("uid").toByteArray(), [&](const QByteArray &value) { | 42 | uidIndex.lookup(query.propertyFilter.value("uid").toByteArray(), [&](const QByteArray &value) { |
43 | keys << value; | 43 | keys << value; |
44 | }, | 44 | }, |
@@ -50,11 +50,11 @@ ResultSet TypeImplementation<Event>::queryIndexes(const Akonadi2::Query &query, | |||
50 | return ResultSet(keys); | 50 | return ResultSet(keys); |
51 | } | 51 | } |
52 | 52 | ||
53 | void TypeImplementation<Event>::index(const Event &type) | 53 | void TypeImplementation<Event>::index(const Event &type, Akonadi2::Storage::Transaction &transaction) |
54 | { | 54 | { |
55 | Index uidIndex(Akonadi2::storageLocation(), type.resourceInstanceIdentifier() + ".index.uid", Akonadi2::Storage::ReadWrite); | ||
56 | const auto uid = type.getProperty("uid"); | 55 | const auto uid = type.getProperty("uid"); |
57 | if (uid.isValid()) { | 56 | if (uid.isValid()) { |
57 | Index uidIndex("index.uid", transaction); | ||
58 | uidIndex.add(uid.toByteArray(), type.identifier()); | 58 | uidIndex.add(uid.toByteArray(), type.identifier()); |
59 | } | 59 | } |
60 | } | 60 | } |
diff --git a/common/domain/event.h b/common/domain/event.h index 13cfc6e..f21cd34 100644 --- a/common/domain/event.h +++ b/common/domain/event.h | |||
@@ -20,6 +20,8 @@ | |||
20 | 20 | ||
21 | #include "applicationdomaintype.h" | 21 | #include "applicationdomaintype.h" |
22 | 22 | ||
23 | #include "storage.h" | ||
24 | |||
23 | class ResultSet; | 25 | class ResultSet; |
24 | class QByteArray; | 26 | class QByteArray; |
25 | 27 | ||
@@ -53,8 +55,8 @@ public: | |||
53 | * | 55 | * |
54 | * An empty result set indicates that a full scan is required. | 56 | * An empty result set indicates that a full scan is required. |
55 | */ | 57 | */ |
56 | static ResultSet queryIndexes(const Akonadi2::Query &query, const QByteArray &resourceInstanceIdentifier, QSet<QByteArray> &appliedFilters); | 58 | static ResultSet queryIndexes(const Akonadi2::Query &query, const QByteArray &resourceInstanceIdentifier, QSet<QByteArray> &appliedFilters, Akonadi2::Storage::Transaction &transaction); |
57 | static void index(const Event &type); | 59 | static void index(const Event &type, Akonadi2::Storage::Transaction &transaction); |
58 | static QSharedPointer<ReadPropertyMapper<Buffer> > initializeReadPropertyMapper(); | 60 | static QSharedPointer<ReadPropertyMapper<Buffer> > initializeReadPropertyMapper(); |
59 | static QSharedPointer<WritePropertyMapper<BufferBuilder> > initializeWritePropertyMapper(); | 61 | static QSharedPointer<WritePropertyMapper<BufferBuilder> > initializeWritePropertyMapper(); |
60 | }; | 62 | }; |