diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-18 12:44:12 +0200 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-10-21 09:18:49 +0200 |
commit | 71a0167e0216f84588b492c84e92667847fbe5a5 (patch) | |
tree | 016718fe0ab13359e9738b9ddbf2450b05bb4603 /common/datastorequery.h | |
parent | 2a9c738b813133d398683596df6d41d355e3cb3b (diff) | |
download | sink-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.h | 18 |
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 { | |||
35 | public: | 35 | public: |
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 | ||
42 | private: | 42 | private: |
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); |