diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-16 17:43:22 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-02-16 17:43:22 +0100 |
commit | 529dd17eec62a9702b8837f8f1976dfbf28fdd82 (patch) | |
tree | 3fe5581a76b83cd9c4360b67e7dd99ceb8c0eaab /common/typeindex.h | |
parent | 8acaae496f9e816c4c1b1126fc6409b6fafe6500 (diff) | |
download | sink-529dd17eec62a9702b8837f8f1976dfbf28fdd82.tar.gz sink-529dd17eec62a9702b8837f8f1976dfbf28fdd82.zip |
Prepared sort indexes
Diffstat (limited to 'common/typeindex.h')
-rw-r--r-- | common/typeindex.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/common/typeindex.h b/common/typeindex.h index b8a6e39..c19780c 100644 --- a/common/typeindex.h +++ b/common/typeindex.h | |||
@@ -31,15 +31,20 @@ public: | |||
31 | 31 | ||
32 | template<typename T> | 32 | template<typename T> |
33 | void addProperty(const QByteArray &property); | 33 | void addProperty(const QByteArray &property); |
34 | template<typename T, typename S> | ||
35 | void addPropertyWithSorting(const QByteArray &property, const QByteArray &sortProperty); | ||
34 | 36 | ||
35 | void add(const QByteArray &identifier, const Sink::ApplicationDomain::BufferAdaptor &bufferAdaptor, Sink::Storage::Transaction &transaction); | 37 | void add(const QByteArray &identifier, const Sink::ApplicationDomain::BufferAdaptor &bufferAdaptor, Sink::Storage::Transaction &transaction); |
36 | void remove(const QByteArray &identifier, const Sink::ApplicationDomain::BufferAdaptor &bufferAdaptor, Sink::Storage::Transaction &transaction); | 38 | void remove(const QByteArray &identifier, const Sink::ApplicationDomain::BufferAdaptor &bufferAdaptor, Sink::Storage::Transaction &transaction); |
37 | 39 | ||
38 | ResultSet query(const Sink::Query &query, QSet<QByteArray> &appliedFilters, Sink::Storage::Transaction &transaction); | 40 | ResultSet query(const Sink::Query &query, QSet<QByteArray> &appliedFilters, QByteArray &appliedSorting, Sink::Storage::Transaction &transaction); |
39 | 41 | ||
40 | private: | 42 | private: |
43 | QByteArray indexName(const QByteArray &property, const QByteArray &sortProperty = QByteArray()) const; | ||
41 | QByteArray mType; | 44 | QByteArray mType; |
42 | QByteArrayList mProperties; | 45 | QByteArrayList mProperties; |
46 | QMap<QByteArray, QByteArray> mSortedProperties; | ||
43 | QHash<QByteArray, std::function<void(const QByteArray &identifier, const QVariant &value, Sink::Storage::Transaction &transaction)> > mIndexer; | 47 | QHash<QByteArray, std::function<void(const QByteArray &identifier, const QVariant &value, Sink::Storage::Transaction &transaction)> > mIndexer; |
48 | QHash<QByteArray, std::function<void(const QByteArray &identifier, const QVariant &value, const QVariant &sortValue, Sink::Storage::Transaction &transaction)> > mSortIndexer; | ||
44 | }; | 49 | }; |
45 | 50 | ||