summaryrefslogtreecommitdiffstats
path: root/common/typeindex.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-16 17:43:22 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-16 17:43:22 +0100
commit529dd17eec62a9702b8837f8f1976dfbf28fdd82 (patch)
tree3fe5581a76b83cd9c4360b67e7dd99ceb8c0eaab /common/typeindex.h
parent8acaae496f9e816c4c1b1126fc6409b6fafe6500 (diff)
downloadsink-529dd17eec62a9702b8837f8f1976dfbf28fdd82.tar.gz
sink-529dd17eec62a9702b8837f8f1976dfbf28fdd82.zip
Prepared sort indexes
Diffstat (limited to 'common/typeindex.h')
-rw-r--r--common/typeindex.h7
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
40private: 42private:
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