From 3cfbdf0e60c94733c0a79e94bdf8627afc6bb2a4 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Tue, 21 Sep 2010 21:48:41 +0000 Subject: QMFv2 Additions: - QMFv2 schema encoding completed - Schema queries handled by the agent and initiated by the console by user request - Full query support with predicates evaluated on the agent (regex not yet implemented) - Agent filtering in the console - Agent aging in the console - Unit tests git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@999662 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qmf/AgentImpl.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'cpp/src/qmf/AgentImpl.h') diff --git a/cpp/src/qmf/AgentImpl.h b/cpp/src/qmf/AgentImpl.h index d5d2a2fdb2..aadc81b5bd 100644 --- a/cpp/src/qmf/AgentImpl.h +++ b/cpp/src/qmf/AgentImpl.h @@ -25,6 +25,7 @@ #include "qmf/Agent.h" #include "qmf/ConsoleEventImpl.h" #include "qmf/ConsoleSessionImpl.h" +#include "qmf/QueryImpl.h" #include "qmf/SchemaCache.h" #include "qpid/messaging/Session.h" #include "qpid/messaging/Message.h" @@ -41,10 +42,11 @@ namespace qmf { // Impl-only methods // AgentImpl(const std::string& n, uint32_t e, ConsoleSessionImpl& s); - void setAttribute(const std::string& k, const qpid::types::Variant& v) { attributes[k] = v; } + void setAttribute(const std::string& k, const qpid::types::Variant& v); void setAttribute(const std::string& k, const std::string& v) { attributes[k] = v; } void touch() { touched = true; } - uint32_t age() { untouchedCount = touched ? 0 : untouchedCount + 1; return untouchedCount; } + uint32_t age() { untouchedCount = touched ? 0 : untouchedCount + 1; touched = false; return untouchedCount; } + uint32_t getCapability() const { return capability; } void handleException(const qpid::types::Variant::Map&, const qpid::messaging::Message&); void handleMethodResponse(const qpid::types::Variant::Map&, const qpid::messaging::Message&); void handleDataIndication(const qpid::types::Variant::List&, const qpid::messaging::Message&); @@ -61,6 +63,9 @@ namespace qmf { const qpid::types::Variant& getAttribute(const std::string& k) const; const qpid::types::Variant::Map& getAttributes() const { return attributes; } + ConsoleEvent querySchema(qpid::messaging::Duration t) { return query(Query(QUERY_SCHEMA_ID), t); } + uint32_t querySchemaAsync() { return queryAsync(Query(QUERY_SCHEMA_ID)); } + ConsoleEvent query(const Query& q, qpid::messaging::Duration t); ConsoleEvent query(const std::string& q, qpid::messaging::Duration t); uint32_t queryAsync(const Query& q); @@ -88,15 +93,17 @@ namespace qmf { ConsoleSessionImpl& session; bool touched; uint32_t untouchedCount; + uint32_t capability; qpid::types::Variant::Map attributes; uint32_t nextCorrelator; std::map > contextMap; boost::shared_ptr schemaCache; mutable std::set packageSet; - std::set schemaIdSet; + std::set schemaIdSet; Query stringToQuery(const std::string&); void sendQuery(const Query&, uint32_t); + void sendSchemaIdQuery(uint32_t); void sendMethod(const std::string&, const qpid::types::Variant::Map&, const DataAddr&, uint32_t); void sendSchemaRequest(const SchemaId&); void learnSchemaId(const SchemaId&); -- cgit v1.2.1