summaryrefslogtreecommitdiffstats
path: root/common/query.h
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-09 22:17:28 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-05-09 22:17:28 +0200
commit4999ec5da028e3b11d9c7b7bc0fe25acdf0a8ddd (patch)
tree804bc7b4d6469245e84c63d32bd8ffcd19a36033 /common/query.h
parent367d167aa4d19e43669a42c198d941476f340800 (diff)
downloadsink-4999ec5da028e3b11d9c7b7bc0fe25acdf0a8ddd.tar.gz
sink-4999ec5da028e3b11d9c7b7bc0fe25acdf0a8ddd.zip
Resource factory methods and capability filter.
Diffstat (limited to 'common/query.h')
-rw-r--r--common/query.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/common/query.h b/common/query.h
index 5c0d5c9..8a420f9 100644
--- a/common/query.h
+++ b/common/query.h
@@ -35,7 +35,7 @@ class SINK_EXPORT Query
35public: 35public:
36 enum Flag 36 enum Flag
37 { 37 {
38 /** Leave the query running an contiously update the result set. */ 38 /** Leave the query running and continuously update the result set. */
39 LiveQuery 39 LiveQuery
40 }; 40 };
41 Q_DECLARE_FLAGS(Flags, Flag) 41 Q_DECLARE_FLAGS(Flags, Flag)
@@ -43,14 +43,14 @@ public:
43 static Query PropertyFilter(const QByteArray &key, const QVariant &value) 43 static Query PropertyFilter(const QByteArray &key, const QVariant &value)
44 { 44 {
45 Query query; 45 Query query;
46 query.propertyFilter.insert(key, value); 46 query.propertyFilter.insert(key, Comparator(value));
47 return query; 47 return query;
48 } 48 }
49 49
50 static Query PropertyContainsFilter(const QByteArray &key, const QVariant &value) 50 static Query PropertyContainsFilter(const QByteArray &key, const QVariant &value)
51 { 51 {
52 Query query; 52 Query query;
53 query.propertyFilter.insert(key, value); 53 query.propertyFilter.insert(key, Comparator(value, Comparator::Contains));
54 return query; 54 return query;
55 } 55 }
56 56
@@ -85,6 +85,13 @@ public:
85 return query; 85 return query;
86 } 86 }
87 87
88 static Query CapabilityFilter(const QByteArray &capability)
89 {
90 Query query;
91 query.propertyFilter.insert("capabilities", Comparator(capability, Comparator::Contains));
92 return query;
93 }
94
88 static Query AccountFilter(const QByteArrayList &identifier) 95 static Query AccountFilter(const QByteArrayList &identifier)
89 { 96 {
90 Q_ASSERT(!identifier.isEmpty()); 97 Q_ASSERT(!identifier.isEmpty());
@@ -167,6 +174,7 @@ public:
167 174
168 Comparator(); 175 Comparator();
169 Comparator(const QVariant &v); 176 Comparator(const QVariant &v);
177 Comparator(const QVariant &v, Comparators c);
170 bool matches(const QVariant &v) const; 178 bool matches(const QVariant &v) const;
171 179
172 QVariant value; 180 QVariant value;