summaryrefslogtreecommitdiff
path: root/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs')
-rw-r--r--dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs77
1 files changed, 46 insertions, 31 deletions
diff --git a/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs b/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
index 4c16038d4b..ae5e2b7e66 100644
--- a/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
+++ b/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
@@ -22,6 +22,7 @@ using System;
using System.Text;
using Qpid.Framing;
using Qpid.Messaging;
+using Qpid.Buffer;
namespace Qpid.Client.Message
{
@@ -29,34 +30,58 @@ namespace Qpid.Client.Message
{
private const string MIME_TYPE = "text/plain";
- private byte[] _data;
-
private string _decodedValue;
- public QpidTextMessage() : this(null, null)
- {
+ //public QpidTextMessage() : this(null, null)
+ //{
+ //}
+
+ //public QpidTextMessage(byte[] data, String encoding) : base()
+ //{
+ // // the superclass has instantied a content header at this point
+ // ContentHeaderProperties.ContentType= MIME_TYPE;
+ // _data = data;
+ // ContentHeaderProperties.Encoding = encoding;
+ //}
+
+ //public QpidTextMessage(ulong messageNbr, byte[] data, BasicContentHeaderProperties contentHeader)
+ // : base(messageNbr, contentHeader)
+ //{
+ // contentHeader.ContentType = MIME_TYPE;
+ // _data = data;
+ //}
+
+ //public QpidTextMessage(byte[] data) : this(data, null)
+ //{
+ //}
+
+ //public QpidTextMessage(string text)
+ //{
+ // Text = text;
+ //}
+
+ internal QpidTextMessage() : this(null, null)
+ {
}
- public QpidTextMessage(byte[] data, String encoding) : base()
+ QpidTextMessage(ByteBuffer data, String encoding) : base(data)
{
- // the superclass has instantied a content header at this point
- ContentHeaderProperties.ContentType= MIME_TYPE;
- _data = data;
+ ContentHeaderProperties.ContentType = MIME_TYPE;
ContentHeaderProperties.Encoding = encoding;
}
- public QpidTextMessage(ulong messageNbr, byte[] data, BasicContentHeaderProperties contentHeader)
- : base(messageNbr, contentHeader)
- {
+ internal QpidTextMessage(long deliveryTag, BasicContentHeaderProperties contentHeader, ByteBuffer data)
+ :base(deliveryTag, contentHeader, data)
+ {
contentHeader.ContentType = MIME_TYPE;
_data = data;
}
- public QpidTextMessage(byte[] data) : this(data, null)
- {
+ QpidTextMessage(ByteBuffer data) : this(data, null)
+ {
}
- public QpidTextMessage(string text)
+ QpidTextMessage(String text) : base((ByteBuffer)null)
{
Text = text;
}
@@ -72,18 +97,6 @@ namespace Qpid.Client.Message
return Text;
}
- public override byte[] Data
- {
- get
- {
- return _data;
- }
- set
- {
- _data = value;
- }
- }
-
public override string MimeType
{
get
@@ -109,27 +122,29 @@ namespace Qpid.Client.Message
if (ContentHeaderProperties.Encoding != null)
{
// throw ArgumentException if the encoding is not supported
- _decodedValue = Encoding.GetEncoding(ContentHeaderProperties.Encoding).GetString(_data);
+ _decodedValue = Encoding.GetEncoding(ContentHeaderProperties.Encoding).GetString(_data.ToByteArray());
}
else
{
- _decodedValue = Encoding.Default.GetString(_data);
+ _decodedValue = Encoding.Default.GetString(_data.ToByteArray());
}
return _decodedValue;
}
}
set
- {
+ {
+ byte[] bytes;
if (ContentHeaderProperties.Encoding == null)
{
- _data = Encoding.Default.GetBytes(value);
+ bytes = Encoding.Default.GetBytes(value);
}
else
{
// throw ArgumentException if the encoding is not supported
- _data = Encoding.GetEncoding(ContentHeaderProperties.Encoding).GetBytes(value);
+ bytes = Encoding.GetEncoding(ContentHeaderProperties.Encoding).GetBytes(value);
}
+ _data = HeapByteBuffer.wrap(bytes, bytes.Length);
_decodedValue = value;
}
}