diff options
author | Ted Ross <tross@apache.org> | 2010-03-17 22:39:07 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2010-03-17 22:39:07 +0000 |
commit | beb42b51850a1c20fc7ac941dade108470db23e8 (patch) | |
tree | e29ed49f232d204491fda6aebee82daac7268e73 | |
parent | 02274c1936de019930b917b7753d3fd689106a3e (diff) | |
download | qpid-python-beb42b51850a1c20fc7ac941dade108470db23e8.tar.gz |
Added the proper message content-type so clients can properly interpret sent messages.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qmf-devel0.7a@924534 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/examples/qmf-agent/example.cpp | 4 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 12 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 3 |
3 files changed, 13 insertions, 6 deletions
diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp index 9766a61bd4..7d9043e097 100644 --- a/qpid/cpp/examples/qmf-agent/example.cpp +++ b/qpid/cpp/examples/qmf-agent/example.cpp @@ -102,8 +102,12 @@ CoreClass::CoreClass(ManagementAgent* _agent, string _name) : name(_name), agent 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); } diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp index 963b09a31d..b154ef73b0 100644 --- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp @@ -675,8 +675,7 @@ qpid::messaging::Variant::Map ManagementAgentImpl::mapEncodeSchemaId(const std:: map_["_package_name"] = pname; map_["_class_name"] = cname; - map_["_hash_str"] = std::string((const char *)md5Sum, - qpid::management::ManagementObject::MD5_LEN); + map_["_hash_str"] = messaging::Uuid((const char*) md5Sum); return map_; } @@ -834,7 +833,7 @@ void ManagementAgentImpl::periodicProcessing() send_stats = (object->hasInst() && (object->getInstChanged() || object->getForcePublish())); if (send_stats || send_props) { - ::qpid::messaging::Variant::Map map_; + ::qpid::messaging::Variant::Map map_; ::qpid::messaging::Variant::Map values; map_["_schema_id"] = mapEncodeSchemaId(object->getPackageName(), @@ -863,7 +862,7 @@ void ManagementAgentImpl::periodicProcessing() headers["qmf.content"] = "_data"; headers["qmf.agent"] = name_address; - connThreadBody.sendBuffer(str, 0, headers, "qpid.management", key.str()); + connThreadBody.sendBuffer(str, 0, headers, "qpid.management", key.str(), "amqp/list"); QPID_LOG(trace, "SENT DataIndication key=" << key.str()); } } @@ -980,7 +979,8 @@ void ManagementAgentImpl::ConnectionThread::sendBuffer(const string& data, uint32_t sequence, const qpid::messaging::VariantMap headers, const string& exchange, - const string& routingKey) + const string& routingKey, + const string& contentType) { Message msg; qpid::messaging::VariantMap::const_iterator i; @@ -990,6 +990,8 @@ void ManagementAgentImpl::ConnectionThread::sendBuffer(const string& data, seqstr << sequence; msg.getMessageProperties().setCorrelationId(seqstr.str()); } + if (!contentType.empty()) + msg.getMessageProperties().setContentType(contentType); for (i = headers.begin(); i != headers.end(); ++i) { msg.getHeaders().setString(i->first, i->second.asString()); } diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h index b69a5e5843..35ace3910f 100644 --- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h @@ -208,7 +208,8 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen const uint32_t sequence, const qpid::messaging::VariantMap headers, const std::string& exchange, - const std::string& routingKey); + const std::string& routingKey, + const std::string& contentType="amqp/map"); void sendMessage(qpid::client::Message msg, const std::string& exchange, const std::string& routingKey); |