summaryrefslogtreecommitdiffstats
path: root/common/query.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-11-06 10:12:24 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-11-06 10:12:24 +0100
commite511841292d241fb9175a712184900ae69ed8685 (patch)
tree0fea577b192a61e64618049a9e7306c7a1d5177e /common/query.h
parentc04755a772cbc6b2cf3a80e9c3c17b718e153c55 (diff)
downloadsink-e511841292d241fb9175a712184900ae69ed8685.tar.gz
sink-e511841292d241fb9175a712184900ae69ed8685.zip
Query serialization.
Diffstat (limited to 'common/query.h')
-rw-r--r--common/query.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/common/query.h b/common/query.h
index b858610..70b6d63 100644
--- a/common/query.h
+++ b/common/query.h
@@ -42,6 +42,7 @@ public:
42 Comparator(const QVariant &v); 42 Comparator(const QVariant &v);
43 Comparator(const QVariant &v, Comparators c); 43 Comparator(const QVariant &v, Comparators c);
44 bool matches(const QVariant &v) const; 44 bool matches(const QVariant &v) const;
45 bool operator==(const Comparator &other) const;
45 46
46 QVariant value; 47 QVariant value;
47 Comparators comparator; 48 Comparators comparator;
@@ -51,8 +52,11 @@ public:
51 public: 52 public:
52 QByteArrayList ids; 53 QByteArrayList ids;
53 QHash<QByteArray, Comparator> propertyFilter; 54 QHash<QByteArray, Comparator> propertyFilter;
55 bool operator==(const Filter &other) const;
54 }; 56 };
55 57
58 bool operator==(const QueryBase &other) const;
59
56 Comparator getFilter(const QByteArray &property) const 60 Comparator getFilter(const QByteArray &property) const
57 { 61 {
58 return mBaseFilterStage.propertyFilter.value(property); 62 return mBaseFilterStage.propertyFilter.value(property);
@@ -68,6 +72,11 @@ public:
68 mBaseFilterStage.propertyFilter = filter; 72 mBaseFilterStage.propertyFilter = filter;
69 } 73 }
70 74
75 void setFilter(const Filter &filter)
76 {
77 mBaseFilterStage = filter;
78 }
79
71 QHash<QByteArray, Comparator> getBaseFilters() const 80 QHash<QByteArray, Comparator> getBaseFilters() const
72 { 81 {
73 return mBaseFilterStage.propertyFilter; 82 return mBaseFilterStage.propertyFilter;
@@ -110,12 +119,12 @@ public:
110 119
111 void setSortProperty(const QByteArray &property) 120 void setSortProperty(const QByteArray &property)
112 { 121 {
113 mSortPorperty = property; 122 mSortProperty = property;
114 } 123 }
115 124
116 QByteArray sortProperty() const 125 QByteArray sortProperty() const
117 { 126 {
118 return mSortPorperty; 127 return mSortProperty;
119 } 128 }
120 129
121 class FilterStage { 130 class FilterStage {
@@ -244,7 +253,7 @@ private:
244 Filter mBaseFilterStage; 253 Filter mBaseFilterStage;
245 QList<QSharedPointer<FilterStage>> mFilterStages; 254 QList<QSharedPointer<FilterStage>> mFilterStages;
246 QByteArray mType; 255 QByteArray mType;
247 QByteArray mSortPorperty; 256 QByteArray mSortProperty;
248}; 257};
249 258
250/** 259/**
@@ -458,7 +467,10 @@ private:
458 467
459} 468}
460 469
461QDebug operator<<(QDebug dbg, const Sink::Query::Comparator &c); 470QDebug SINK_EXPORT operator<<(QDebug dbg, const Sink::Query::Comparator &c);
471QDataStream & SINK_EXPORT operator<< (QDataStream &stream, const Sink::QueryBase &query);
472QDataStream & SINK_EXPORT operator>> (QDataStream &stream, Sink::QueryBase &query);
462 473
463Q_DECLARE_OPERATORS_FOR_FLAGS(Sink::Query::Flags) 474Q_DECLARE_OPERATORS_FOR_FLAGS(Sink::Query::Flags)
475Q_DECLARE_METATYPE(Sink::QueryBase);
464Q_DECLARE_METATYPE(Sink::Query); 476Q_DECLARE_METATYPE(Sink::Query);