You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2007/07/25 18:44:35 UTC
svn commit: r559520 - in /incubator/qpid/trunk/qpid/java/common: ./
src/main/java/org/apache/qpidity/
Author: rhs
Date: Wed Jul 25 09:44:32 2007
New Revision: 559520
URL: http://svn.apache.org/viewvc?view=rev&rev=559520
Log:
fixed Encoder/Decoder to do the property type conversion for unsigned types
Modified:
incubator/qpid/trunk/qpid/java/common/generate
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBDecoder.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBEncoder.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Decoder.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Encoder.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SizeEncoder.java
Modified: incubator/qpid/trunk/qpid/java/common/generate
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/generate?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/generate (original)
+++ incubator/qpid/trunk/qpid/java/common/generate Wed Jul 25 09:44:32 2007
@@ -50,16 +50,15 @@
"longstr": "String",
"shortstr": "String",
"longlong": "long",
- "long": "int",
- "short": "short",
- "octet": "byte",
+ "long": "long",
+ "short": "int",
+ "octet": "short",
"bit": "boolean",
"table": "Map<String,?>",
"timestamp": "long",
"content": "String",
"uuid": "UUID",
- "rfc1982-long-set": "Range<Integer>[]",
- "rfc1982-long": "int"
+ "rfc1982-long-set": "Range<Long>[]"
}
def camel(offset, *args):
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBDecoder.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBDecoder.java?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBDecoder.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBDecoder.java Wed Jul 25 09:44:32 2007
@@ -34,9 +34,25 @@
class BBDecoder implements Decoder
{
+ private static final short unsigned(byte b)
+ {
+ return (short) ((0x100 + b) & 0xFF);
+ }
+
+ private static final int unsigned(short s)
+ {
+ return (0x10000 + s) & 0xFFFF;
+ }
+
+ private static final long unsigned(int i)
+ {
+ return (0x1000000000L + i) & 0xFFFFFFFFL;
+ }
+
private final ByteBuffer in;
- public BBDecoder(ByteBuffer in) {
+ public BBDecoder(ByteBuffer in)
+ {
this.in = in;
}
@@ -46,19 +62,19 @@
return false;
}
- public byte readOctet()
+ public short readOctet()
{
- throw new Error("TODO");
+ return unsigned(in.get());
}
- public short readShort()
+ public int readShort()
{
- return in.getShort();
+ return unsigned(in.getShort());
}
- public int readLong()
+ public long readLong()
{
- return in.getInt();
+ return unsigned(in.getInt());
}
public long readLonglong()
@@ -74,7 +90,7 @@
public String readShortstr()
{
- byte size = in.get();
+ short size = readOctet();
byte[] bytes = new byte[size];
in.get(bytes);
return new String(bytes);
@@ -82,7 +98,11 @@
public String readLongstr()
{
- throw new Error("TODO");
+ long size = readLong();
+ assert size <= Integer.MAX_VALUE;
+ byte[] bytes = new byte[(int) size];
+ in.get(bytes);
+ return new String(bytes);
}
public Map<String,?> readTable()
@@ -91,7 +111,7 @@
return null;
}
- public Range<Integer>[] readRfc1982LongSet()
+ public Range<Long>[] readRfc1982LongSet()
{
throw new Error("TODO");
}
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBEncoder.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBEncoder.java?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBEncoder.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/BBEncoder.java Wed Jul 25 09:44:32 2007
@@ -45,19 +45,22 @@
//throw new Error("TODO");
}
- public void writeOctet(byte b)
+ public void writeOctet(short b)
{
- out.put(b);
+ assert b < 0x100;
+ out.put((byte) b);
}
- public void writeShort(short s)
+ public void writeShort(int s)
{
- out.putShort(s);
+ assert s < 0x10000;
+ out.putShort((short) s);
}
- public void writeLong(int i)
+ public void writeLong(long i)
{
- out.putInt(i);
+ assert i < 0x100000000L;
+ out.putInt((int) i);
}
public void writeLonglong(long l)
@@ -77,13 +80,14 @@
if (s.length() > 255) {
throw new IllegalArgumentException(s);
}
- writeOctet((byte) s.length());
+ writeOctet((short) s.length());
out.put(s.getBytes());
}
public void writeLongstr(String s)
{
- throw new Error("TODO");
+ writeLong(s.length());
+ out.put(s.getBytes());
}
@@ -92,7 +96,7 @@
//throw new Error("TODO");
}
- public void writeRfc1982LongSet(Range<Integer>[] ranges)
+ public void writeRfc1982LongSet(Range<Long>[] ranges)
{
throw new Error("TODO");
}
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Decoder.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Decoder.java?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Decoder.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Decoder.java Wed Jul 25 09:44:32 2007
@@ -33,9 +33,9 @@
{
boolean readBit();
- byte readOctet();
- short readShort();
- int readLong();
+ short readOctet();
+ int readShort();
+ long readLong();
long readLonglong();
long readTimestamp();
@@ -44,7 +44,7 @@
String readLongstr();
Map<String,?> readTable();
- Range<Integer>[] readRfc1982LongSet();
+ Range<Long>[] readRfc1982LongSet();
UUID readUuid();
String readContent();
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Encoder.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Encoder.java?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Encoder.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/Encoder.java Wed Jul 25 09:44:32 2007
@@ -33,9 +33,9 @@
{
void writeBit(boolean b);
- void writeOctet(byte b);
- void writeShort(short s);
- void writeLong(int i);
+ void writeOctet(short b);
+ void writeShort(int s);
+ void writeLong(long i);
void writeLonglong(long l);
void writeTimestamp(long l);
@@ -44,7 +44,7 @@
void writeLongstr(String s);
void writeTable(Map<String,?> table);
- void writeRfc1982LongSet(Range<Integer>[] ranges);
+ void writeRfc1982LongSet(Range<Long>[] ranges);
void writeUuid(UUID uuid);
void writeContent(String c);
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SizeEncoder.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SizeEncoder.java?view=diff&rev=559520&r1=559519&r2=559520
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SizeEncoder.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SizeEncoder.java Wed Jul 25 09:44:32 2007
@@ -57,17 +57,17 @@
//throw new Error("TODO");
}
- public void writeOctet(byte b)
+ public void writeOctet(short b)
{
size += 1;
}
- public void writeShort(short s)
+ public void writeShort(int s)
{
size += 2;
}
- public void writeLong(int i)
+ public void writeLong(long i)
{
size += 4;
}
@@ -104,7 +104,7 @@
//throw new Error("TODO");
}
- public void writeRfc1982LongSet(Range<Integer>[] ranges)
+ public void writeRfc1982LongSet(Range<Long>[] ranges)
{
throw new Error("TODO");
}