diff options
author | Arnaud Simon <arnaudsimon@apache.org> | 2008-10-02 12:34:45 +0000 |
---|---|---|
committer | Arnaud Simon <arnaudsimon@apache.org> | 2008-10-02 12:34:45 +0000 |
commit | 16abe32b572646be5e0a6a0b21cde553fa56bd67 (patch) | |
tree | abffb1877f59f7601375499c857630f4da1d6ab4 /qpid/dotnet/client-010/client/transport/codec | |
parent | dd2ed172b017cae24354bb0b7be9bd1f44249f3d (diff) | |
download | qpid-python-16abe32b572646be5e0a6a0b21cde553fa56bd67.tar.gz |
qpid-1277: fixed header conversion issues + added test
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@701107 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/dotnet/client-010/client/transport/codec')
4 files changed, 12 insertions, 12 deletions
diff --git a/qpid/dotnet/client-010/client/transport/codec/AbstractDecoder.cs b/qpid/dotnet/client-010/client/transport/codec/AbstractDecoder.cs index eeb08ce2ae..44aecb0933 100644 --- a/qpid/dotnet/client-010/client/transport/codec/AbstractDecoder.cs +++ b/qpid/dotnet/client-010/client/transport/codec/AbstractDecoder.cs @@ -341,17 +341,17 @@ namespace org.apache.qpid.transport.codec case Code.INT32:
return (int) readUint32();
- case Code.FLOAT:
- return (float) readUint32();
-
+ case Code.FLOAT:
+ return (float)BitConverter.Int64BitsToDouble(readUint32() << 32);
+
case Code.BIN64:
case Code.UINT64:
case Code.INT64:
case Code.DATETIME:
return readUint64();
- case Code.DOUBLE:
- return (double) readUint64();
+ case Code.DOUBLE:
+ return BitConverter.Int64BitsToDouble(readUint64());
case Code.UUID:
return readUuid();
case Code.STR8:
diff --git a/qpid/dotnet/client-010/client/transport/codec/AbstractEncoder.cs b/qpid/dotnet/client-010/client/transport/codec/AbstractEncoder.cs index f70eb17a55..c89b96462e 100644 --- a/qpid/dotnet/client-010/client/transport/codec/AbstractEncoder.cs +++ b/qpid/dotnet/client-010/client/transport/codec/AbstractEncoder.cs @@ -23,7 +23,6 @@ using System.Collections.Generic; using System.Diagnostics;
using System.IO;
using System.Text;
-using org.apache.qpid.transport.codec;
using org.apache.qpid.transport.util;
namespace org.apache.qpid.transport.codec
@@ -482,7 +481,8 @@ namespace org.apache.qpid.transport.codec put((Byte) value);
break;
case Code.CHAR:
- put((byte) value);
+ byte[] b = BitConverter.GetBytes((char) value);
+ put(b[0]);
break;
case Code.BOOLEAN:
if ((bool) value)
@@ -516,18 +516,18 @@ namespace org.apache.qpid.transport.codec break;
case Code.FLOAT:
- writeUint32((long) value);
+ writeUint32(BitConverter.DoubleToInt64Bits((float) value) >> 32);
break;
case Code.BIN64:
case Code.UINT64:
- case Code.INT64:
+ case Code.INT64:
case Code.DATETIME:
writeUint64((long) value);
break;
case Code.DOUBLE:
- writeUint64((long) value);
+ writeUint64( BitConverter.DoubleToInt64Bits((double) value));
break;
case Code.UUID:
diff --git a/qpid/dotnet/client-010/client/transport/codec/MSDecoder.cs b/qpid/dotnet/client-010/client/transport/codec/MSDecoder.cs index a4f2a24801..cc8971d38b 100644 --- a/qpid/dotnet/client-010/client/transport/codec/MSDecoder.cs +++ b/qpid/dotnet/client-010/client/transport/codec/MSDecoder.cs @@ -76,7 +76,7 @@ namespace org.apache.qpid.transport.codec public override long readUint64()
{
- return (long) ByteEncoder.GetBigEndian((Double) reader.ReadInt64());
+ return (long) ByteEncoder.GetBigEndian(reader.ReadInt64());
}
}
}
\ No newline at end of file diff --git a/qpid/dotnet/client-010/client/transport/codec/MSEncoder.cs b/qpid/dotnet/client-010/client/transport/codec/MSEncoder.cs index bb78aa8680..b2ccbb89ae 100644 --- a/qpid/dotnet/client-010/client/transport/codec/MSEncoder.cs +++ b/qpid/dotnet/client-010/client/transport/codec/MSEncoder.cs @@ -90,7 +90,7 @@ namespace org.apache.qpid.transport.codec public override void writeUint64(long l)
{
- _writer.Write(ByteEncoder.GetBigEndian((Double) l));
+ _writer.Write(ByteEncoder.GetBigEndian(l));
}
protected override int beginSize8()
|