diff options
Diffstat (limited to 'qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java')
-rw-r--r-- | qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java index ef0da9b918..6481c6ebdb 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java @@ -23,10 +23,14 @@ package org.apache.qpid.framing; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.nio.ByteBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.qpid.transport.ByteBufferSender; +import org.apache.qpid.util.BytesDataOutput; + public class BasicContentHeaderProperties { //persistent & non-persistent constants, values as per JMS DeliveryMode @@ -314,6 +318,26 @@ public class BasicContentHeaderProperties } } + + public long writePropertyListPayload(final ByteBufferSender sender) throws IOException + { + if(useEncodedForm()) + { + sender.send(ByteBuffer.wrap(_encodedForm)); + return _encodedForm.length; + } + else + { + int propertyListSize = getPropertyListSize(); + byte[] data = new byte[propertyListSize]; + BytesDataOutput out = new BytesDataOutput(data); + writePropertyListPayload(out); + sender.send(ByteBuffer.wrap(data)); + return propertyListSize; + } + + } + public void populatePropertiesFromBuffer(DataInput buffer, int propertyFlags, int size) throws AMQFrameDecodingException, IOException { _propertyFlags = propertyFlags; |