summaryrefslogtreecommitdiff
path: root/dotnet/Qpid.Client/Client
diff options
context:
space:
mode:
authorRobert Greig <rgreig@apache.org>2007-02-26 17:46:07 +0000
committerRobert Greig <rgreig@apache.org>2007-02-26 17:46:07 +0000
commit3bfaba7fd65f251b68e8c4085582a4b62edf8e5d (patch)
tree6e90ae3729802623450af664e0a39a52f5f1b3f3 /dotnet/Qpid.Client/Client
parent2ea003c24ab3170dec118af6f9f8c128241cec65 (diff)
downloadqpid-python-3bfaba7fd65f251b68e8c4085582a4b62edf8e5d.tar.gz
(Patch submitted by Tomas Restrepo) QPID-ByteBuffer.diff.
Completely refactors the byte buffer implementation, doing away with a complex inheritance hierarchy. Fixes reading and writing of field table to permit interop with Java client. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@511923 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'dotnet/Qpid.Client/Client')
-rw-r--r--dotnet/Qpid.Client/Client/AmqChannel.cs6
-rw-r--r--dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs10
-rw-r--r--dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs37
-rw-r--r--dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs78
-rw-r--r--dotnet/Qpid.Client/Client/Message/QpidHeaders.cs547
-rw-r--r--dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs10
-rw-r--r--dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketProcessor.cs9
7 files changed, 277 insertions, 420 deletions
diff --git a/dotnet/Qpid.Client/Client/AmqChannel.cs b/dotnet/Qpid.Client/Client/AmqChannel.cs
index 528fa96924..9855416db5 100644
--- a/dotnet/Qpid.Client/Client/AmqChannel.cs
+++ b/dotnet/Qpid.Client/Client/AmqChannel.cs
@@ -815,8 +815,8 @@ namespace Qpid.Client
byte[] payload = null;
if (buf != null)
{
- payload = new byte[buf.remaining()];
- buf.get(payload);
+ payload = new byte[buf.Remaining];
+ buf.GetBytes(payload);
}
BasicContentHeaderProperties contentHeaderProperties = message.ContentHeaderProperties;
@@ -824,7 +824,7 @@ namespace Qpid.Client
{
if (!disableTimestamps)
{
- contentHeaderProperties.Expiration = (uint)currentTime + timeToLive;
+ contentHeaderProperties.Expiration = currentTime + timeToLive;
}
}
else
diff --git a/dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs b/dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs
index 13a6fa8113..75c4edd67d 100644
--- a/dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs
+++ b/dotnet/Qpid.Client/Client/Message/AMQMessageFactory.cs
@@ -43,20 +43,20 @@ namespace Qpid.Client.Message
if (bodies != null && bodies.Count == 1)
{
_logger.Debug("Non-fragmented message body (bodySize=" + contentHeader.BodySize +")");
- data = ByteBuffer.wrap(((ContentBody)bodies[0]).Payload);
+ data = ByteBuffer.Wrap(((ContentBody)bodies[0]).Payload);
}
else
{
_logger.Debug("Fragmented message body (" + bodies.Count + " frames, bodySize=" + contentHeader.BodySize + ")");
- data = ByteBuffer.allocate((int)contentHeader.BodySize); // XXX: Is cast a problem?
+ data = ByteBuffer.Allocate((int)contentHeader.BodySize); // XXX: Is cast a problem?
foreach (ContentBody body in bodies) {
- data.put(body.Payload);
+ data.Put(body.Payload);
//body.Payload.Release();
}
- data.flip();
+ data.Flip();
}
- _logger.Debug("Creating message from buffer with position=" + data.position() + " and remaining=" + data.remaining());
+ _logger.Debug("Creating message from buffer with position=" + data.Position + " and remaining=" + data.Remaining);
return CreateMessage(messageNbr, data, contentHeader);
}
diff --git a/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs b/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs
index 85ac497ad2..1d2b2db3ca 100644
--- a/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs
+++ b/dotnet/Qpid.Client/Client/Message/AbstractQmsMessage.cs
@@ -36,33 +36,38 @@ namespace Qpid.Client.Message
protected ByteBuffer _data;
protected bool _readableMessage = false;
+ private QpidHeaders _headers;
#region new_java_ctrs
protected AbstractQmsMessage(ByteBuffer data)
: base(new BasicContentHeaderProperties())
{
- _data = data;
- if (_data != null)
- {
- _data.acquire();
- }
- _readableMessage = (data != null);
+ Init(data);
}
protected AbstractQmsMessage(long deliveryTag, BasicContentHeaderProperties contentHeader, ByteBuffer data)
: this(contentHeader, deliveryTag)
{
- _data = data;
- if (_data != null)
- {
- _data.acquire();
- }
- _readableMessage = data != null;
+ Init(data);
}
protected AbstractQmsMessage(BasicContentHeaderProperties contentHeader, long deliveryTag) : base(contentHeader, deliveryTag)
{
+ Init(null);
+ }
+
+ private void Init(ByteBuffer data)
+ {
+ _data = data;
+ if ( _data != null )
+ {
+ _data.Acquire();
+ }
+ _readableMessage = (data != null);
+ if ( ContentHeaderProperties.Headers == null )
+ ContentHeaderProperties.Headers = new FieldTable();
+ _headers = new QpidHeaders(ContentHeaderProperties.Headers);
}
#endregion
@@ -269,7 +274,7 @@ namespace Qpid.Client.Message
}
set
{
- ContentHeaderProperties.Expiration = (uint) value;
+ ContentHeaderProperties.Expiration = value;
}
}
@@ -314,7 +319,7 @@ namespace Qpid.Client.Message
public IHeaders Headers
{
- get { return new QpidHeaders(this); }
+ get { return _headers; }
}
public abstract void ClearBodyImpl();
@@ -345,13 +350,13 @@ namespace Qpid.Client.Message
{
if (!_readableMessage)
{
- _data.flip();
+ _data.Flip();
}
else
{
// Make sure we rewind the data just in case any method has moved the
// position beyond the start.
- _data.rewind();
+ _data.Rewind();
}
}
return _data;
diff --git a/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs b/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs
index 044dec58b1..32e47d852a 100644
--- a/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs
+++ b/dotnet/Qpid.Client/Client/Message/QpidBytesMessage.cs
@@ -62,8 +62,8 @@ namespace Qpid.Client.Message
ContentHeaderProperties.ContentType = MIME_TYPE;
if (data == null)
{
- _data = ByteBuffer.allocate(DEFAULT_BUFFER_INITIAL_SIZE);
- _data.setAutoExpand(true);
+ _data = ByteBuffer.Allocate(DEFAULT_BUFFER_INITIAL_SIZE);
+ _data.IsAutoExpand = true;
}
}
@@ -76,7 +76,7 @@ namespace Qpid.Client.Message
public override void ClearBodyImpl()
{
- _data.clear();
+ _data.Clear();
}
public override string ToBodyString()
@@ -99,19 +99,19 @@ namespace Qpid.Client.Message
{
return null;
}
- int pos = _data.position();
- _data.rewind();
+ int pos = _data.Position;
+ _data.Rewind();
// one byte left is for the end of frame marker
- if (_data.remaining() == 0)
+ if (_data.Remaining == 0)
{
// this is really redundant since pos must be zero
- _data.position(pos);
+ _data.Position = pos;
return null;
}
else
{
- byte[] data = new byte[_data.remaining()];
- _data.get(data);
+ byte[] data = new byte[_data.Remaining];
+ _data.GetBytes(data);
return Encoding.UTF8.GetString(data);
}
}
@@ -129,7 +129,7 @@ namespace Qpid.Client.Message
get
{
CheckReadable();
- return _data.limit();
+ return _data.Limit;
}
}
@@ -145,63 +145,63 @@ namespace Qpid.Client.Message
{
CheckReadable();
CheckAvailable(1);
- return _data.get() != 0;
+ return _data.GetByte() != 0;
}
public byte ReadByte()
{
CheckReadable();
CheckAvailable(1);
- return _data.get();
+ return _data.GetByte();
}
public short ReadSignedByte()
{
CheckReadable();
CheckAvailable(1);
- return _data.get();
+ return _data.GetSByte();
}
public short ReadShort()
{
CheckReadable();
CheckAvailable(2);
- return _data.getShort();
+ return _data.GetInt16();
}
public char ReadChar()
{
CheckReadable();
CheckAvailable(2);
- return _data.getChar();
+ return _data.GetChar();
}
public int ReadInt()
{
CheckReadable();
CheckAvailable(4);
- return _data.getInt();
+ return _data.GetInt32();
}
public long ReadLong()
{
CheckReadable();
CheckAvailable(8);
- return _data.getLong();
+ return _data.GetInt64();
}
public float ReadFloat()
{
CheckReadable();
CheckAvailable(4);
- return _data.getFloat();
+ return _data.GetFloat();
}
public double ReadDouble()
{
CheckReadable();
CheckAvailable(8);
- return _data.getDouble();
+ return _data.GetDouble();
}
public string ReadUTF()
@@ -212,8 +212,8 @@ namespace Qpid.Client.Message
CheckAvailable(1);
try
{
- byte[] data = new byte[_data.remaining()];
- _data.get(data);
+ byte[] data = new byte[_data.Remaining];
+ _data.GetBytes(data);
return Encoding.UTF8.GetString(data);
}
catch (IOException e)
@@ -229,14 +229,14 @@ namespace Qpid.Client.Message
throw new ArgumentNullException("bytes");
}
CheckReadable();
- int count = (_data.remaining() >= bytes.Length ? bytes.Length : _data.remaining());
+ int count = (_data.Remaining >= bytes.Length ? bytes.Length : _data.Remaining);
if (count == 0)
{
return -1;
}
else
{
- _data.get(bytes, 0, count);
+ _data.GetBytes(bytes, 0, count);
return count;
}
}
@@ -252,14 +252,14 @@ namespace Qpid.Client.Message
throw new ArgumentOutOfRangeException("maxLength must be >= 0");
}
CheckReadable();
- int count = (_data.remaining() >= maxLength ? maxLength : _data.remaining());
+ int count = (_data.Remaining >= maxLength ? maxLength : _data.Remaining);
if (count == 0)
{
return -1;
}
else
{
- _data.get(bytes, 0, count);
+ _data.GetBytes(bytes, 0, count);
return count;
}
}
@@ -267,80 +267,80 @@ namespace Qpid.Client.Message
public void WriteBoolean(bool b)
{
CheckWritable();
- _data.put(b ? (byte)1 : (byte)0);
+ _data.Put(b ? (byte)1 : (byte)0);
}
public void WriteByte(byte b)
{
CheckWritable();
- _data.put(b);
+ _data.Put(b);
}
public void WriteShort(short i)
{
CheckWritable();
- _data.putShort(i);
+ _data.Put(i);
}
public void WriteChar(char c)
{
CheckWritable();
- _data.putChar(c);
+ _data.Put(c);
}
public void WriteSignedByte(short value)
{
CheckWritable();
- _data.put((byte)value);
+ _data.Put(value);
}
public void WriteDouble(double value)
{
CheckWritable();
- _data.putDouble(value);
+ _data.Put(value);
}
public void WriteFloat(float value)
{
CheckWritable();
- _data.putFloat(value);
+ _data.Put(value);
}
public void WriteInt(int value)
{
CheckWritable();
- _data.putInt(value);
+ _data.Put(value);
}
public void WriteLong(long value)
{
CheckWritable();
- _data.putLong(value);
+ _data.Put(value);
}
public void WriteUTF(string value)
{
CheckWritable();
byte[] encodedData = Encoding.UTF8.GetBytes(value);
- _data.put(encodedData);
+ _data.Put(encodedData);
}
public void WriteBytes(byte[] bytes)
{
CheckWritable();
- _data.put(bytes);
+ _data.Put(bytes);
}
public void WriteBytes(byte[] bytes, int offset, int length)
{
CheckWritable();
- _data.put(bytes, offset, length);
+ _data.Put(bytes, offset, length);
}
protected override void Reset()
{
base.Reset();
- _data.flip();
+ _data.Flip();
}
void IBytesMessage.Reset()
@@ -356,7 +356,7 @@ namespace Qpid.Client.Message
*/
private void CheckAvailable(int len)
{
- if (_data.remaining() < len)
+ if (_data.Remaining < len)
{
throw new MessageEOFException("Unable to read " + len + " bytes");
}
diff --git a/dotnet/Qpid.Client/Client/Message/QpidHeaders.cs b/dotnet/Qpid.Client/Client/Message/QpidHeaders.cs
index 3b44dbc45d..6538fcbefc 100644
--- a/dotnet/Qpid.Client/Client/Message/QpidHeaders.cs
+++ b/dotnet/Qpid.Client/Client/Message/QpidHeaders.cs
@@ -6,351 +6,202 @@ using Qpid.Messaging;
namespace Qpid.Client.Message
{
- internal class QpidHeaders : IHeaders
- {
- public const char BOOLEAN_PROPERTY_PREFIX = 'B';
- public const char BYTE_PROPERTY_PREFIX = 'b';
- public const char SHORT_PROPERTY_PREFIX = 's';
- public const char INT_PROPERTY_PREFIX = 'i';
- public const char LONG_PROPERTY_PREFIX = 'l';
- public const char FLOAT_PROPERTY_PREFIX = 'f';
- public const char DOUBLE_PROPERTY_PREFIX = 'd';
- public const char STRING_PROPERTY_PREFIX = 'S';
-
- AbstractQmsMessage _message;
-
- public QpidHeaders(AbstractQmsMessage message)
- {
- _message = message;
- }
-
- public bool Contains(string name)
- {
- CheckPropertyName(name);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return false;
- }
- else
- {
- // TODO: fix this
- return _message.ContentHeaderProperties.Headers.Contains(STRING_PROPERTY_PREFIX + name);
- }
- }
-
- public void Clear()
- {
- if (_message.ContentHeaderProperties.Headers != null)
- {
- _message.ContentHeaderProperties.Headers.Clear();
- }
- }
-
- public string this[string name]
- {
- get
- {
- return GetString(name);
- }
- set
- {
- SetString(name, value);
- }
- }
-
- public bool GetBoolean(string name)
- {
- CheckPropertyName(name);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return false;
- }
- else
- {
- object b = _message.ContentHeaderProperties.Headers[BOOLEAN_PROPERTY_PREFIX + name];
-
- if (b == null)
- {
- return false;
- }
- else
- {
- return (bool)b;
- }
- }
- }
-
- public void SetBoolean(string name, bool b)
- {
- CheckPropertyName(name);
- _message.ContentHeaderProperties.Headers[BOOLEAN_PROPERTY_PREFIX + name] = b;
- }
-
- public byte GetByte(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object b = _message.ContentHeaderProperties.Headers[BYTE_PROPERTY_PREFIX + propertyName];
- if (b == null)
- {
- return 0;
- }
- else
- {
- return (byte)b;
- }
- }
- }
-
- public void SetByte(string propertyName, byte b)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[BYTE_PROPERTY_PREFIX + propertyName] = b;
- }
-
- public short GetShort(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object s = _message.ContentHeaderProperties.Headers[SHORT_PROPERTY_PREFIX + propertyName];
- if (s == null)
- {
- return 0;
- }
- else
- {
- return (short)s;
- }
- }
- }
-
- public void SetShort(string propertyName, short i)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[SHORT_PROPERTY_PREFIX + propertyName] = i;
- }
-
- public int GetInt(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object i = _message.ContentHeaderProperties.Headers[INT_PROPERTY_PREFIX + propertyName];
- if (i == null)
- {
- return 0;
- }
- else
- {
- return (int)i;
- }
- }
- }
-
- public void SetInt(string propertyName, int i)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[INT_PROPERTY_PREFIX + propertyName] = i;
- }
-
- public long GetLong(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object l = _message.ContentHeaderProperties.Headers[LONG_PROPERTY_PREFIX + propertyName];
- if (l == null)
- {
- // temp - the spec says do this but this throws a NumberFormatException
- //return Long.valueOf(null).longValue();
- return 0;
- }
- else
- {
- return (long)l;
- }
- }
- }
-
- public void SetLong(string propertyName, long l)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[LONG_PROPERTY_PREFIX + propertyName] = l;
- }
-
- public float GetFloat(String propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object f = _message.ContentHeaderProperties.Headers[FLOAT_PROPERTY_PREFIX + propertyName];
- if (f == null)
- {
- return 0;
- }
- else
- {
- return (float)f;
- }
- }
- }
-
- public void SetFloat(string propertyName, float f)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[FLOAT_PROPERTY_PREFIX + propertyName] = f;
- }
-
- public double GetDouble(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return 0;
- }
- else
- {
- object d = _message.ContentHeaderProperties.Headers[DOUBLE_PROPERTY_PREFIX + propertyName];
- if (d == null)
- {
- return 0;
- }
- else
- {
- return (double)d;
- }
- }
- }
-
- public void SetDouble(string propertyName, double v)
- {
- CheckPropertyName(propertyName);
- _message.ContentHeaderProperties.Headers[DOUBLE_PROPERTY_PREFIX + propertyName] = v;
- }
-
- public string GetString(string propertyName)
- {
- CheckPropertyName(propertyName);
- if (_message.ContentHeaderProperties.Headers == null)
- {
- return null;
- }
- else
- {
- return (string)_message.ContentHeaderProperties.Headers[STRING_PROPERTY_PREFIX + propertyName];
- }
- }
-
- public void SetString(string propertyName, string value)
- {
- CheckPropertyName(propertyName);
- CreatePropertyMapIfRequired();
- propertyName = STRING_PROPERTY_PREFIX + propertyName;
- _message.ContentHeaderProperties.Headers[propertyName] = value;
- }
-
- private void CheckPropertyName(string propertyName)
- {
- if (propertyName == null)
- {
- throw new ArgumentException("Property name must not be null");
- }
- else if ("".Equals(propertyName))
- {
- throw new ArgumentException("Property name must not be the empty string");
- }
-
- if (_message.ContentHeaderProperties.Headers == null)
- {
- _message.ContentHeaderProperties.Headers = new FieldTable();
- }
- }
-
- private void CreatePropertyMapIfRequired()
- {
- if (_message.ContentHeaderProperties.Headers == null)
- {
- _message.ContentHeaderProperties.Headers = new FieldTable();
- }
- }
-
- public override string ToString()
- {
- StringBuilder buf = new StringBuilder("{");
- int i = 0;
- foreach (DictionaryEntry entry in _message.ContentHeaderProperties.Headers)
- {
- ++i;
- if (i > 1)
- {
- buf.Append(", ");
- }
- string propertyName = (string)entry.Key;
- if (propertyName == null)
- {
- buf.Append("\nInternal error: Property with NULL key defined");
- }
- else
- {
- buf.Append(propertyName.Substring(1));
-
- buf.Append(" : ");
-
- char typeIdentifier = propertyName[0];
- buf.Append(typeIdentifierToName(typeIdentifier));
- buf.Append(" = ").Append(entry.Value);
- }
- }
- buf.Append("}");
- return buf.ToString();
- }
-
- private static string typeIdentifierToName(char typeIdentifier)
- {
- switch (typeIdentifier)
- {
- case BOOLEAN_PROPERTY_PREFIX:
- return "boolean";
- case BYTE_PROPERTY_PREFIX:
- return "byte";
- case SHORT_PROPERTY_PREFIX:
- return "short";
- case INT_PROPERTY_PREFIX:
- return "int";
- case LONG_PROPERTY_PREFIX:
- return "long";
- case FLOAT_PROPERTY_PREFIX:
- return "float";
- case DOUBLE_PROPERTY_PREFIX:
- return "double";
- case STRING_PROPERTY_PREFIX:
- return "string";
- default:
- return "unknown ( '" + typeIdentifier + "')";
- }
- }
-
- }
-} \ No newline at end of file
+ internal class QpidHeaders : IHeaders
+ {
+ private FieldTable _headers;
+
+ public QpidHeaders(FieldTable headers)
+ {
+ if ( headers == null )
+ throw new ArgumentNullException("headers");
+ _headers = headers;
+ }
+
+ public bool Contains(string name)
+ {
+ CheckPropertyName(name);
+ return _headers.Contains(name);
+ }
+
+ public void Clear()
+ {
+ _headers.Clear();
+ }
+
+ public string this[string name]
+ {
+ get
+ {
+ return GetString(name);
+ }
+ set
+ {
+ SetString(name, value);
+ }
+ }
+
+ public bool GetBoolean(string name)
+ {
+ CheckPropertyName(name);
+ if ( Contains(name) )
+ return _headers.GetBoolean(name);
+ return false;
+ }
+
+ public void SetBoolean(string name, bool b)
+ {
+ CheckPropertyName(name);
+ _headers.SetBoolean(name, b);
+ }
+
+ public byte GetByte(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetByte(propertyName);
+ return 0;
+ }
+
+ public void SetByte(string propertyName, byte b)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetByte(propertyName, b);
+ }
+
+ // we have sbyte overloads to interoperate with java
+ // because the Java client/server uses signed bytes
+ // by default, while C#'s is unsigned
+ public sbyte GetSByte(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetSByte(propertyName);
+ return 0;
+ }
+
+ public void SetSByte(string propertyName, sbyte b)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetSByte(propertyName, b);
+ }
+
+ public short GetShort(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetInt16(propertyName);
+ return 0;
+ }
+
+ public void SetShort(string propertyName, short i)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetInt16(propertyName, i);
+ }
+
+ public int GetInt(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetInt32(propertyName);
+ return 0;
+ }
+
+ public void SetInt(string propertyName, int i)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetInt32(propertyName, i);
+ }
+
+ public long GetLong(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetInt64(propertyName);
+ return 0;
+ }
+
+ public void SetLong(string propertyName, long l)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetInt64(propertyName, l);
+ }
+
+ public float GetFloat(String propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetFloat(propertyName);
+ return 0f;
+ }
+
+ public void SetFloat(string propertyName, float f)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetFloat(propertyName, f);
+ }
+
+ public double GetDouble(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ if ( Contains(propertyName) )
+ return _headers.GetDouble(propertyName);
+ return 0;
+ }
+
+ public void SetDouble(string propertyName, double v)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetDouble(propertyName, v);
+ }
+
+ public string GetString(string propertyName)
+ {
+ CheckPropertyName(propertyName);
+ return _headers.GetString(propertyName);
+ }
+
+ public void SetString(string propertyName, string value)
+ {
+ CheckPropertyName(propertyName);
+ _headers.SetString(propertyName, value);
+ }
+
+ private static void CheckPropertyName(string propertyName)
+ {
+ if ( propertyName == null )
+ {
+ throw new ArgumentException("Property name must not be null");
+ } else if ( "".Equals(propertyName) )
+ {
+ throw new ArgumentException("Property name must not be the empty string");
+ }
+ }
+
+ public override string ToString()
+ {
+ StringBuilder buf = new StringBuilder("{");
+ int i = 0;
+ foreach ( DictionaryEntry entry in _headers )
+ {
+ ++i;
+ if ( i > 1 )
+ {
+ buf.Append(", ");
+ }
+ string propertyName = (string)entry.Key;
+ if ( propertyName == null )
+ {
+ buf.Append("\nInternal error: Property with NULL key defined");
+ } else
+ {
+ buf.Append(propertyName);
+ buf.Append(" = ").Append(entry.Value);
+ }
+ }
+ buf.Append("}");
+ return buf.ToString();
+ }
+
+ }
+}
diff --git a/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs b/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
index 317d2283f3..cff42f1df5 100644
--- a/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
+++ b/dotnet/Qpid.Client/Client/Message/QpidTextMessage.cs
@@ -53,7 +53,7 @@ namespace Qpid.Client.Message
{
if (_data != null)
{
- _data.release();
+ _data.Release();
}
_data = null;
_decodedValue = null;
@@ -86,11 +86,11 @@ namespace Qpid.Client.Message
}
else
{
- _data.rewind();
+ _data.Rewind();
// Read remaining bytes.
- byte[] bytes = new byte[_data.remaining()];
- _data.get(bytes);
+ byte[] bytes = new byte[_data.Remaining];
+ _data.GetBytes(bytes);
// Convert to string based on encoding.
if (ContentHeaderProperties.Encoding != null)
@@ -118,7 +118,7 @@ namespace Qpid.Client.Message
// throw ArgumentException if the encoding is not supported
bytes = Encoding.GetEncoding(ContentHeaderProperties.Encoding).GetBytes(value);
}
- _data = ByteBuffer.wrap(bytes);
+ _data = ByteBuffer.Wrap(bytes);
_decodedValue = value;
}
}
diff --git a/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketProcessor.cs b/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketProcessor.cs
index bdec584b7b..7a9ead0c06 100644
--- a/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketProcessor.cs
+++ b/dotnet/Qpid.Client/Client/Transport/Socket/Blocking/BlockingSocketProcessor.cs
@@ -71,7 +71,7 @@ namespace Qpid.Client.Transport.Socket.Blocking
{
try
{
- _networkStream.Write(byteBuffer.array(), byteBuffer.position(), byteBuffer.limit()); // FIXME
+ _networkStream.Write(byteBuffer.Array, byteBuffer.Position, byteBuffer.Limit); // FIXME
}
catch (Exception e)
{
@@ -87,10 +87,10 @@ namespace Qpid.Client.Transport.Socket.Blocking
int numOctets = _networkStream.Read(bytes, 0, bytes.Length);
- ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
- byteBuffer.limit(numOctets);
+ ByteBuffer byteBuffer = ByteBuffer.Wrap(bytes);
+ byteBuffer.Limit = numOctets;
- byteBuffer.flip();
+ byteBuffer.Flip();
return byteBuffer;
}
@@ -114,3 +114,4 @@ namespace Qpid.Client.Transport.Socket.Blocking
}
}
+