diff options
Diffstat (limited to 'qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java')
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java index 377d2e115c..21b8e6c8b6 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBody.java @@ -24,10 +24,13 @@ import java.io.DataInput; import java.io.DataInputStream; import java.io.DataOutput; import java.io.IOException; +import java.nio.ByteBuffer; import org.apache.qpid.AMQException; import org.apache.qpid.codec.MarkableDataInput; import org.apache.qpid.protocol.AMQVersionAwareProtocolSession; +import org.apache.qpid.transport.ByteBufferSender; +import org.apache.qpid.util.BytesDataOutput; public class ContentHeaderBody implements AMQBody { @@ -98,6 +101,19 @@ public class ContentHeaderBody implements AMQBody _properties.writePropertyListPayload(buffer); } + @Override + public long writePayload(final ByteBufferSender sender) throws IOException + { + byte[] data = new byte[14]; + BytesDataOutput buffer = new BytesDataOutput(data); + EncodingUtils.writeUnsignedShort(buffer, CLASS_ID); + EncodingUtils.writeUnsignedShort(buffer, 0); + buffer.writeLong(_bodySize); + EncodingUtils.writeUnsignedShort(buffer, _properties.getPropertyFlags()); + sender.send(ByteBuffer.wrap(data)); + return 14 + _properties.writePropertyListPayload(sender); + } + public void handle(final int channelId, final AMQVersionAwareProtocolSession session) throws AMQException { |