diff options
| author | Ted Ross <tross@apache.org> | 2010-09-21 21:48:41 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-09-21 21:48:41 +0000 |
| commit | 3cfbdf0e60c94733c0a79e94bdf8627afc6bb2a4 (patch) | |
| tree | e33d57bca9a2c2275e76f882484ac3ea913e83fd /cpp/src/qmf/AgentImpl.h | |
| parent | 449ab0f1062c0eac0234f84556de60436ba2ee9d (diff) | |
| download | qpid-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.h | 13 |
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&); |
