From a5c0fde5d0b96ae0b747f0cea21414753d6ee654 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Mon, 10 Sep 2007 08:41:05 +0000 Subject: Client side support for message and delivery properties in header segments. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@574176 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/client/ExecutionHandler.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'cpp/src/qpid/client/ExecutionHandler.cpp') diff --git a/cpp/src/qpid/client/ExecutionHandler.cpp b/cpp/src/qpid/client/ExecutionHandler.cpp index 1520ba2272..c2b5e45928 100644 --- a/cpp/src/qpid/client/ExecutionHandler.cpp +++ b/cpp/src/qpid/client/ExecutionHandler.cpp @@ -181,31 +181,28 @@ SequenceNumber ExecutionHandler::send(const AMQBody& command, const MethodConten CompletionTracker::ResultListener l) { SequenceNumber id = send(command, l); - sendContent(dynamic_cast(content.getMethodHeaders()), content.getData()); + sendContent(content); return id; } -void ExecutionHandler::sendContent(const BasicHeaderProperties& headers, const std::string& data) +void ExecutionHandler::sendContent(const MethodContent& content) { - AMQHeaderBody header; - BasicHeaderProperties::copy(*header.get(true), headers); - header.get(true)->setContentLength(data.size()); - AMQFrame h(0, header); - out(h); + AMQFrame header(0, content.getHeader()); + out(header); - u_int64_t data_length = data.length(); + u_int64_t data_length = content.getData().length(); if(data_length > 0){ //frame itself uses 8 bytes u_int32_t frag_size = maxFrameSize - 8; if(data_length < frag_size){ - AMQFrame frame(0, AMQContentBody(data)); + AMQFrame frame(0, AMQContentBody(content.getData())); out(frame); }else{ u_int32_t offset = 0; u_int32_t remaining = data_length - offset; while (remaining > 0) { u_int32_t length = remaining > frag_size ? frag_size : remaining; - string frag(data.substr(offset, length)); + string frag(content.getData().substr(offset, length)); AMQFrame frame(0, AMQContentBody(frag)); out(frame); offset += length; -- cgit v1.2.1