diff options
author | Ted Ross <tross@apache.org> | 2010-03-31 21:13:12 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2010-03-31 21:13:12 +0000 |
commit | 2e29faa768283390452b7d432db28d43cd4a27aa (patch) | |
tree | 521e9711b340a330408245ba699b35d12b36ce9c /cpp/examples/qmf-agent/example.cpp | |
parent | 5e50981ac8a35db09723ad19f5994703d00e10d9 (diff) | |
download | qpid-python-2e29faa768283390452b7d432db28d43cd4a27aa.tar.gz |
Merged the changes from the qmf-devel0.7a branch back to the trunk.
This is a checkpoint along the QMFv2 development path.
This update introduces portions of QMFv2 into the code:
- The C++ agent (qpid/agent) uses QMFv2 for data and method transfer
o The APIs no longer use qpid::framing::*
o Consequently, boost is no longer referenced from the API headers.
o Agents and Objects are now referenced by strings, not numbers.
o Schema transfer still uses the QMFv1 format.
- The broker-resident agent can use QMFv1 or QMFv2 based on the command line options.
It defaults to QMFv1 for compatibility.
- The pure-python QMF console (qmf.console) can concurrently interact with both
QMFv1 and QMFv2 agents.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@929716 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/qmf-agent/example.cpp')
-rw-r--r-- | cpp/examples/qmf-agent/example.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/cpp/examples/qmf-agent/example.cpp b/cpp/examples/qmf-agent/example.cpp index 5ab9c10c91..18f1bf6a90 100644 --- a/cpp/examples/qmf-agent/example.cpp +++ b/cpp/examples/qmf-agent/example.cpp @@ -24,6 +24,7 @@ #include <qpid/agent/ManagementAgent.h> #include <qpid/sys/Mutex.h> #include <qpid/sys/Time.h> +#include "qpid/types/Variant.h" #include "qmf/org/apache/qpid/agent/example/Parent.h" #include "qmf/org/apache/qpid/agent/example/Child.h" #include "qmf/org/apache/qpid/agent/example/ArgsParentCreate_child.h" @@ -44,6 +45,7 @@ using qpid::management::ManagementObject; using qpid::management::Manageable; using qpid::management::Args; using qpid::sys::Mutex; +using qpid::types::Variant; namespace _qmf = qmf::org::apache::qpid::agent::example; class ChildClass; @@ -96,8 +98,22 @@ CoreClass::CoreClass(ManagementAgent* _agent, string _name) : name(_name), agent static uint64_t persistId = 0x111222333444555LL; mgmtObject = new _qmf::Parent(agent, this, name); - agent->addObject(mgmtObject, persistId++); + agent->addObject(mgmtObject); mgmtObject->set_state("IDLE"); + + Variant::Map args; + Variant::Map subMap; + args["first"] = "String data"; + args["second"] = 34; + subMap["string-data"] = "Text"; + subMap["numeric-data"] = 10000; + args["map-data"] = subMap; + mgmtObject->set_args(args); + + Variant::List list; + list.push_back(20000); + list.push_back("string-item"); + mgmtObject->set_list(list); } void CoreClass::doLoop() @@ -178,6 +194,9 @@ int main_int(int argc, char** argv) // Register the Qmf_example schema with the agent _qmf::Package packageInit(agent); + // Name the agent. + agent->setName("apache.org", "qmf-example"); + // Start the agent. It will attempt to make a connection to the // management broker agent->init(settings, 5, false, ".magentdata"); |