summaryrefslogtreecommitdiff
path: root/cpp/src/qmf/AgentImpl.h
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-09-21 21:48:41 +0000
committerTed Ross <tross@apache.org>2010-09-21 21:48:41 +0000
commit3cfbdf0e60c94733c0a79e94bdf8627afc6bb2a4 (patch)
treee33d57bca9a2c2275e76f882484ac3ea913e83fd /cpp/src/qmf/AgentImpl.h
parent449ab0f1062c0eac0234f84556de60436ba2ee9d (diff)
downloadqpid-python-3cfbdf0e60c94733c0a79e94bdf8627afc6bb2a4.tar.gz
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
Diffstat (limited to 'cpp/src/qmf/AgentImpl.h')
-rw-r--r--cpp/src/qmf/AgentImpl.h13
1 files changed, 10 insertions, 3 deletions
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<uint32_t, boost::shared_ptr<SyncContext> > contextMap;
boost::shared_ptr<SchemaCache> schemaCache;
mutable std::set<std::string> packageSet;
- std::set<SchemaId> schemaIdSet;
+ std::set<SchemaId, SchemaIdCompare> 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&);