From b10ee442673d6d9c8abb46bd7a0606364930130d Mon Sep 17 00:00:00 2001 From: Steven Shaw Date: Tue, 12 Dec 2006 17:36:17 +0000 Subject: QPID-139. Initial (re)port of MINA's bytebuffer abstraction. Now includes the autoexpand feature. References to java.nio.Buffer were replaced with FixedByteBuffer and necessary methods added and implemented. FixedByteBuffer delegates to our existing HeapByteBuffer. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@486248 13f79535-47bb-0310-9956-ffa450edef68 --- .../Qpid.Client/Client/Message/QpidBytesMessage.cs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs') diff --git a/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs b/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs index 866d0d25af..251e7ed57f 100644 --- a/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs +++ b/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs @@ -36,7 +36,7 @@ namespace Qpid.Client.Message /// /// The backingstore for the data /// - private MemoryStream _dataStream; + private MemoryStream _dataStream; // FIXME: Probably don't need this any more. private int _bodyLength; @@ -59,15 +59,17 @@ namespace Qpid.Client.Message ContentHeaderProperties.ContentType = MIME_TYPE; if (data == null) { - _data = ByteBuffer.Allocate(DEFAULT_BUFFER_INITIAL_SIZE); + _data = ByteBuffer.allocate(DEFAULT_BUFFER_INITIAL_SIZE); //_data.AutoExpand = true; _dataStream = new MemoryStream(); _writer = new BinaryWriter(_dataStream); } else { - _dataStream = new MemoryStream(data.ToByteArray()); - _bodyLength = data.ToByteArray().Length; + byte[] bytes = new byte[data.remaining()]; + data.get(bytes); + _dataStream = new MemoryStream(bytes); + _bodyLength = bytes.Length; _reader = new BinaryReader(_dataStream); } } @@ -77,15 +79,17 @@ namespace Qpid.Client.Message : base(messageNbr, (BasicContentHeaderProperties)contentHeader.Properties, data) { ContentHeaderProperties.ContentType = MIME_TYPE; - _dataStream = new MemoryStream(data.ToByteArray()); - _bodyLength = data.ToByteArray().Length; + byte[] bytes = new byte[data.remaining()]; + data.get(bytes); + _dataStream = new MemoryStream(bytes); + _bodyLength = bytes.Length; _reader = new BinaryReader(_dataStream); } public override void ClearBodyImpl() { - _data.Clear(); + _data.clear(); } // public override void ClearBody() @@ -165,7 +169,7 @@ namespace Qpid.Client.Message get { CheckReadable(); - return _data.Limit; // XXX + return _data.limit(); // XXX // return _bodyLength; } } @@ -577,7 +581,7 @@ namespace Qpid.Client.Message public void Reset() { base.Reset(); - _data.Flip(); + _data.flip(); // CheckWritable(); // try -- cgit v1.2.1