summaryrefslogtreecommitdiffstats
path: root/common/datastorequery.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-18 12:44:12 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-10-21 09:18:49 +0200
commit71a0167e0216f84588b492c84e92667847fbe5a5 (patch)
tree016718fe0ab13359e9738b9ddbf2450b05bb4603 /common/datastorequery.h
parent2a9c738b813133d398683596df6d41d355e3cb3b (diff)
downloadsink-71a0167e0216f84588b492c84e92667847fbe5a5.tar.gz
sink-71a0167e0216f84588b492c84e92667847fbe5a5.zip
Use the ApplicationDomainType in the queries as well.
We have to access properties, so we need the mapper anyways, and the ApplicationDomainType type shouldn't be a large overhead anyways.
Diffstat (limited to 'common/datastorequery.h')
-rw-r--r--common/datastorequery.h18
1 files changed, 5 insertions, 13 deletions
diff --git a/common/datastorequery.h b/common/datastorequery.h
index 77c8ed5..92235fd 100644
--- a/common/datastorequery.h
+++ b/common/datastorequery.h
@@ -35,21 +35,20 @@ class DataStoreQuery {
35public: 35public:
36 typedef QSharedPointer<DataStoreQuery> Ptr; 36 typedef QSharedPointer<DataStoreQuery> Ptr;
37 37
38 DataStoreQuery(const Sink::Query &query, const QByteArray &type, Sink::Storage::EntityStore::Ptr store, std::function<QVariant(const Sink::Entity &entity, const QByteArray &property)> getProperty); 38 DataStoreQuery(const Sink::Query &query, const QByteArray &type, Sink::Storage::EntityStore::Ptr store);
39 ResultSet execute(); 39 ResultSet execute();
40 ResultSet update(qint64 baseRevision); 40 ResultSet update(qint64 baseRevision);
41 41
42private: 42private:
43 43
44 typedef std::function<bool(const QByteArray &uid, const Sink::EntityBuffer &entityBuffer)> FilterFunction; 44 typedef std::function<bool(const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Operation)> FilterFunction;
45 typedef std::function<void(const QByteArray &uid, const Sink::EntityBuffer &entityBuffer)> BufferCallback; 45 typedef std::function<void(const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Operation)> BufferCallback;
46 46
47 virtual QVariant getProperty(const Sink::Entity &entity, const QByteArray &property);
48 QVector<QByteArray> indexLookup(const QByteArray &property, const QVariant &value); 47 QVector<QByteArray> indexLookup(const QByteArray &property, const QVariant &value);
49 48
50 virtual void readEntity(const QByteArray &key, const BufferCallback &resultCallback); 49 virtual void readEntity(const QByteArray &key, const BufferCallback &resultCallback);
51 50
52 ResultSet createFilteredSet(ResultSet &resultSet, const std::function<bool(const QByteArray &, const Sink::EntityBuffer &buffer)> &); 51 ResultSet createFilteredSet(ResultSet &resultSet, const FilterFunction &);
53 QVector<QByteArray> loadIncrementalResultSet(qint64 baseRevision); 52 QVector<QByteArray> loadIncrementalResultSet(qint64 baseRevision);
54 53
55 void setupQuery(); 54 void setupQuery();
@@ -57,7 +56,6 @@ private:
57 56
58 Sink::Query mQuery; 57 Sink::Query mQuery;
59 const QByteArray mType; 58 const QByteArray mType;
60 std::function<QVariant(const Sink::Entity &entity, const QByteArray &property)> mGetProperty;
61 bool mInitialQuery; 59 bool mInitialQuery;
62 QSharedPointer<FilterBase> mCollector; 60 QSharedPointer<FilterBase> mCollector;
63 QSharedPointer<Source> mSource; 61 QSharedPointer<Source> mSource;
@@ -85,18 +83,12 @@ public:
85 83
86 virtual ~FilterBase(){} 84 virtual ~FilterBase(){}
87 85
88 void readEntity(const QByteArray &key, const std::function<void(const QByteArray &, const Sink::EntityBuffer &buffer)> &callback) 86 void readEntity(const QByteArray &key, const std::function<void(const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Operation)> &callback)
89 { 87 {
90 Q_ASSERT(mDatastore); 88 Q_ASSERT(mDatastore);
91 mDatastore->readEntity(key, callback); 89 mDatastore->readEntity(key, callback);
92 } 90 }
93 91
94 QVariant getProperty(const Sink::Entity &entity, const QByteArray &property)
95 {
96 Q_ASSERT(mDatastore);
97 return mDatastore->getProperty(entity, property);
98 }
99
100 QVector<QByteArray> indexLookup(const QByteArray &property, const QVariant &value) 92 QVector<QByteArray> indexLookup(const QByteArray &property, const QVariant &value)
101 { 93 {
102 Q_ASSERT(mDatastore); 94 Q_ASSERT(mDatastore);