summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qmf/engine/QueryImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qmf/engine/QueryImpl.h')
-rw-r--r--qpid/cpp/src/qmf/engine/QueryImpl.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/qpid/cpp/src/qmf/engine/QueryImpl.h b/qpid/cpp/src/qmf/engine/QueryImpl.h
index 0ef8711f8e..326bbb7fa6 100644
--- a/qpid/cpp/src/qmf/engine/QueryImpl.h
+++ b/qpid/cpp/src/qmf/engine/QueryImpl.h
@@ -22,6 +22,8 @@
#include "qmf/engine/Query.h"
#include <qpid/messaging/Variant.h>
+#include <qpid/messaging/MapView.h>
+#include <qpid/messaging/ListView.h>
#include <string>
#include <boost/shared_ptr.hpp>
@@ -34,8 +36,13 @@ namespace engine {
target(_target), predicate(_predicate), resultLimit(0) {}
QueryImpl(const char* _target, const char* expression) :
target(_target), resultLimit(0) { parsePredicate(expression); }
+ QueryImpl(const qpid::messaging::MapView& map);
+ QueryImpl(const qpid::messaging::ListView& pred);
~QueryImpl() {}
+ static Query* factory(const qpid::messaging::MapView& map);
+ static Query* factory(const qpid::messaging::ListView& pred);
+
void where(const qpid::messaging::Variant::List& _predicate) { predicate = _predicate; }
void where(const char* expression) { parsePredicate(expression); }
void limit(uint32_t maxResults) { resultLimit = maxResults; }
@@ -48,7 +55,7 @@ namespace engine {
uint32_t getLimit() const { return resultLimit; }
const char* getOrderBy() const { return sortAttr.c_str(); }
bool getDecreasing() const { return orderDecreasing; }
- bool matches(const Object& object) const;
+ bool matches(const qpid::messaging::Variant::Map& data) const;
void parsePredicate(const std::string& expression);