Show Table of Contents
1.4.2. qpid::messaging Message::get/setContentObject()
Structured AMQP 1.0 messages can have the body of the message encoded in a variety of ways.
The Ruby and Python APIs do not decode the body of structured AMQP 1.0 message. A message sent as an AMQP 1.0 type can be received by these libraries, but the body is not decoded. Applications using the Ruby and Python APIs need to decode the body themselves.
The C++ and C# APIs have the new methods
Message::getContentObject() and Message::setContentObject() to access the semantic content of structured AMQP 1.0 messages. These methods allow the body of the message to be accessed or manipulated as a Variant. Using these methods produces the most widely applicable code as they work for both protocol versions and work with map-, list-, text- or binary- messages.
The content object is a Variant, allowing the type to be determined, and also allowing the content to be automatically decoded.
The following C++ example demonstrates the new methods:
bool Formatter::isMapMsg(qpid::messaging::Message& msg) {
return(msg.getContentObject().getType() == qpid::types::VAR_MAP);
}
bool Formatter::isListMsg(qpid::messaging::Message& msg) {
return(msg.getContentObject().getType() == qpid::types::VAR_LIST);
}
qpid::types::Variant::Map Formatter::getMsgAsMap(qpid::messaging::Message& msg) {
qpid::types::Variant::Map intMap;
intMap = msg.getContentObject().asMap();
return(intMap);
}
qpid::types::Variant::List Formatter::getMsgAsList(qpid::messaging::Message& msg) {
qpid::types::Variant::List intList;
intList = msg.getContentObject().asList();
return(intList);
}Message::getContent() and Message::setContent() continue to refer to the raw bytes of the content. The encode() and decode() methods in the API continue to decode map- and list- messages in the AMQP 0-10 format.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.