summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-03-17 22:39:07 +0000
committerTed Ross <tross@apache.org>2010-03-17 22:39:07 +0000
commitbeb42b51850a1c20fc7ac941dade108470db23e8 (patch)
treee29ed49f232d204491fda6aebee82daac7268e73
parent02274c1936de019930b917b7753d3fd689106a3e (diff)
downloadqpid-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.cpp4
-rw-r--r--qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp12
-rw-r--r--qpid/cpp/src/qpid/agent/ManagementAgentImpl.h3
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);