From: Mark Slee Date: Wed, 9 Aug 2006 00:05:18 +0000 (+0000) Subject: Java Thrift libraries no longer use specially defined UInt32 etc. classes X-Git-Tag: 0.2.0~1731 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=530fd662c015083a94526b9e4370892565409de6;p=common%2Fthrift.git Java Thrift libraries no longer use specially defined UInt32 etc. classes Summary: There was really no need for these now that we are getting rid of unsigned, they should all just use the builtin int and long types git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664741 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/java/src/protocol/TBinaryProtocol.java b/lib/java/src/protocol/TBinaryProtocol.java index b2e77d93..a7590058 100644 --- a/lib/java/src/protocol/TBinaryProtocol.java +++ b/lib/java/src/protocol/TBinaryProtocol.java @@ -2,7 +2,6 @@ package com.facebook.thrift.protocol; import com.facebook.thrift.TException; import com.facebook.thrift.transport.TTransport; -import com.facebook.thrift.types.*; /** * Binary protocol implementation for thrift. @@ -10,227 +9,176 @@ import com.facebook.thrift.types.*; * @author Mark Slee */ public class TBinaryProtocol implements TProtocol { - public int writeStructBegin (TTransport out, - TStruct struct) throws TException { - return 0; - } + public void writeStructBegin(TTransport out, TStruct struct) throws TException {} - public int writeStructEnd (TTransport out) throws TException { - return 0; - } + public void writeStructEnd(TTransport out) throws TException {} - public int writeFieldBegin (TTransport out, - TField field) throws TException { - return - writeByte(out, field.type.getCode()) + - writeI32(out, field.id); + public void writeFieldBegin(TTransport out, TField field) throws TException { + writeByte(out, field.type); + writeI32(out, field.id); } - public int writeFieldEnd (TTransport out) throws TException { - return 0; - } + public void writeFieldEnd(TTransport out) throws TException {} - public int writeFieldStop (TTransport out) throws TException { - return - writeByte(out, TType.STOP.getCode()); + public void writeFieldStop(TTransport out) throws TException { + writeByte(out, TType.STOP); } - public int writeMapBegin (TTransport out, - TMap map) throws TException { - return - writeByte(out, map.keyType.getCode()) + - writeByte(out, map.valueType.getCode()) + - writeI32(out, map.size); + public void writeMapBegin(TTransport out, TMap map) throws TException { + writeByte(out, map.keyType); + writeByte(out, map.valueType); + writeI32(out, map.size); } - public int writeMapEnd (TTransport out) throws TException { - return 0; - } + public void writeMapEnd(TTransport out) throws TException {} - public int writeListBegin (TTransport out, - TList list) throws TException { - return - writeByte(out, list.elemType.getCode()) + - writeI32(out, list.size); + public void writeListBegin(TTransport out, TList list) throws TException { + writeByte(out, list.elemType); + writeI32(out, list.size); } - public int writeListEnd (TTransport out) throws TException { - return 0; - } + public void writeListEnd(TTransport out) throws TException {} - public int writeSetBegin (TTransport out, - TSet set) throws TException { - return - writeByte(out, set.elemType.getCode()) + - writeI32(out, set.size); + public void writeSetBegin(TTransport out, TSet set) throws TException { + writeByte(out, set.elemType); + writeI32(out, set.size); } - public int writeSetEnd (TTransport out) throws TException { - return 0; - } + public void writeSetEnd(TTransport out) throws TException {} - public int writeByte (TTransport out, - UInt8 b) throws TException { - out.write(b.data(), 0, 1); - return 1; + byte[] bout = new byte[1]; + public void writeByte(TTransport out, byte b) throws TException { + bout[0] = b; + out.write(bout, 0, 1); } - public int writeU32 (TTransport out, - UInt32 u32) throws TException { - out.write(u32.data(), 0, 4); - return 4; + public void writeU32(TTransport out, int u32) throws TException { + writeI32(out, u32); } - public int writeI32 (TTransport out, - Int32 i32) throws TException { - out.write(i32.data(), 0, 4); - return 4; + byte[] i32out = new byte[4]; + public void writeI32(TTransport out, int i32) throws TException { + i32out[0] = (byte)(0xff & (i32 >> 24)); + i32out[1] = (byte)(0xff & (i32 >> 16)); + i32out[2] = (byte)(0xff & (i32 >> 8)); + i32out[3] = (byte)(0xff & (i32)); + out.write(i32out, 0, 4); } - public int writeU64 (TTransport out, - UInt64 u64) throws TException { - out.write(u64.data(), 0, 8); - return 8; + public void writeU64(TTransport out, long u64) throws TException { + writeI64(out, u64); } - public int writeI64 (TTransport out, - Int64 i64) throws TException { - out.write(i64.data(), 0, 8); - return 8; + byte[] i64out = new byte[8]; + public void writeI64(TTransport out, long i64) throws TException { + i64out[0] = (byte)(0xff & (i64 >> 56)); + i64out[1] = (byte)(0xff & (i64 >> 48)); + i64out[2] = (byte)(0xff & (i64 >> 40)); + i64out[3] = (byte)(0xff & (i64 >> 32)); + i64out[4] = (byte)(0xff & (i64 >> 24)); + i64out[5] = (byte)(0xff & (i64 >> 16)); + i64out[6] = (byte)(0xff & (i64 >> 8)); + i64out[7] = (byte)(0xff & (i64)); + out.write(i64out, 0, 8); } - public int writeString (TTransport out, - TString str) throws TException { - byte[] dat = str.value.getBytes(); - int sent = writeI32(out, new Int32(dat.length)); + public void writeString(TTransport out, String str) throws TException { + byte[] dat = str.getBytes(); + writeI32(out, dat.length); out.write(dat, 0, dat.length); - return sent + dat.length; } /** * Reading methods. */ - public int readStructBegin (TTransport in, - TStruct struct) throws TException { - struct.name = ""; - return 0; - } - - public int readStructEnd (TTransport in) throws TException { - return 0; + public TStruct readStructBegin(TTransport in) throws TException { + return new TStruct(); } - public int readFieldBegin (TTransport in, - TField field) throws TException { - int recv = 0; - UInt8 t = new UInt8(); + public void readStructEnd(TTransport in) throws TException {} - recv += readByte(in, t); - field.type = TType.getType(t); - if (field.type.equals(TType.STOP)) { - field.id = new Int32(0); - return recv; + public TField readFieldBegin(TTransport in) throws TException { + TField field = new TField(); + field.type = readByte(in); + if (field.type != TType.STOP) { + field.id = readI32(in); } - recv += readI32(in, field.id); - return recv; + return field; } - public int readFieldEnd (TTransport in) throws TException { - return 0; - } + public void readFieldEnd(TTransport in) throws TException {} - public int readMapBegin (TTransport in, - TMap map) throws TException { - int recv = 0; - UInt8 t = new UInt8(); - recv += readByte(in, t); - map.keyType = TType.getType(t); - recv += readByte(in, t); - map.valueType = TType.getType(t); - recv += readI32(in, map.size); - return recv; + public TMap readMapBegin(TTransport in) throws TException { + TMap map = new TMap(); + map.keyType = readByte(in); + map.valueType = readByte(in); + map.size = readI32(in); + return map; } - public int readMapEnd (TTransport in) throws TException { - return 0; - } + public void readMapEnd(TTransport in) throws TException {} - public int readListBegin (TTransport in, - TList list) throws TException { - int recv = 0; - UInt8 t = new UInt8(); - recv += readByte(in, t); - list.elemType = TType.getType(t); - recv += readI32(in, list.size); - return recv; + public TList readListBegin(TTransport in) throws TException { + TList list = new TList(); + list.elemType = readByte(in); + list.size = readI32(in); + return list; } - public int readListEnd (TTransport in) throws TException { - return 0; - } + public void readListEnd(TTransport in) throws TException {} - public int readSetBegin (TTransport in, - TSet set) throws TException { - int recv = 0; - UInt8 t = new UInt8(); - recv += readByte(in, t); - set.elemType = TType.getType(t); - recv += readI32(in, set.size); - return recv; + public TSet readSetBegin(TTransport in) throws TException { + TSet set = new TSet(); + set.elemType = readByte(in); + set.size = readI32(in); + return set; } - public int readSetEnd (TTransport in) throws TException { - return 0; - } + public void readSetEnd(TTransport in) throws TException {} - public int readByte (TTransport in, - UInt8 b) throws TException { - byte[] buf = new byte[1]; - in.readAll(buf, 0, 1); - b.read(buf, 0); - return 1; + byte[] bin = new byte[1]; + public byte readByte(TTransport in) throws TException { + in.readAll(bin, 0, 1); + return bin[0]; } - public int readU32 (TTransport in, - UInt32 u32) throws TException { - byte[] buf = new byte[4]; - in.readAll(buf, 0, 4); - u32.read(buf, 0); - return 4; + public int readU32(TTransport in) throws TException { + return readI32(in); } - public int readI32 (TTransport in, - Int32 i32) throws TException { - byte[] buf = new byte[4]; - in.readAll(buf, 0, 4); - i32.read(buf, 0); - return 4; + byte[] i32rd = new byte[4]; + public int readI32(TTransport in) throws TException { + in.readAll(i32rd, 0, 4); + return + ((i32rd[0] & 0xff) << 24) | + ((i32rd[1] & 0xff) << 16) | + ((i32rd[2] & 0xff) << 8) | + ((i32rd[3] & 0xff)); } - public int readU64 (TTransport in, - UInt64 u64) throws TException { - byte[] buf = new byte[8]; - in.readAll(buf, 0, 8); - u64.read(buf, 0); - return 8; + public long readU64(TTransport in) throws TException { + return readI64(in); } - public int readI64 (TTransport in, - Int64 i64) throws TException { - byte[] buf = new byte[8]; - in.readAll(buf, 0, 8); - i64.read(buf, 0); - return 8; - } - - public int readString (TTransport in, - TString s) throws TException { - Int32 size = new Int32(); - int recv = readI32(in, size); - byte[] buf = new byte[size.get()]; - in.readAll(buf, 0, size.get()); - s.value = new String(buf); - return recv + size.get(); + byte[] i64rd = new byte[8]; + public long readI64(TTransport in) throws TException { + in.readAll(i64rd, 0, 8); + return + ((long)(i64rd[0] & 0xff) << 56) | + ((long)(i64rd[1] & 0xff) << 48) | + ((long)(i64rd[2] & 0xff) << 40) | + ((long)(i64rd[3] & 0xff) << 32) | + ((long)(i64rd[4] & 0xff) << 24) | + ((long)(i64rd[5] & 0xff) << 16) | + ((long)(i64rd[6] & 0xff) << 8) | + ((long)(i64rd[7] & 0xff)); + } + + public String readString(TTransport in) throws TException { + int size = readI32(in); + byte[] buf = new byte[size]; + in.readAll(buf, 0, size); + return new String(buf); } } diff --git a/lib/java/src/protocol/TField.java b/lib/java/src/protocol/TField.java index d758c68b..50570fbb 100644 --- a/lib/java/src/protocol/TField.java +++ b/lib/java/src/protocol/TField.java @@ -1,7 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; - /** * Helper class that encapsulates field metadata. * @@ -10,17 +8,13 @@ import com.facebook.thrift.types.*; public class TField { public TField() {} - public TField(String n, TType t, int i) { - this(n, t, new Int32(i)); - } - - public TField(String n, TType t, Int32 i) { + public TField(String n, byte t, int i) { name = n; type = t; id = i; } public String name = ""; - public TType type = TType.STOP; - public Int32 id = new Int32(); + public byte type = TType.STOP; + public int id = 0; } diff --git a/lib/java/src/protocol/TList.java b/lib/java/src/protocol/TList.java index ff76ffd5..05286196 100644 --- a/lib/java/src/protocol/TList.java +++ b/lib/java/src/protocol/TList.java @@ -1,7 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; - /** * Helper class that encapsulates list metadata. * @@ -10,15 +8,11 @@ import com.facebook.thrift.types.*; public class TList { public TList() {} - public TList(TType t, int s) { - this(t, new Int32(s)); - } - - public TList(TType t, Int32 s) { + public TList(byte t, int s) { elemType = t; size = s; } - public TType elemType = TType.STOP; - public Int32 size = new Int32(); + public byte elemType = TType.STOP; + public int size = 0; } diff --git a/lib/java/src/protocol/TMap.java b/lib/java/src/protocol/TMap.java index f251fa67..e8d18e16 100644 --- a/lib/java/src/protocol/TMap.java +++ b/lib/java/src/protocol/TMap.java @@ -1,7 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; - /** * Helper class that encapsulates map metadata. * @@ -10,17 +8,13 @@ import com.facebook.thrift.types.*; public class TMap { public TMap() {} - public TMap(TType k, TType v, int s) { - this(k, v, new Int32(s)); - } - - public TMap(TType k, TType v, Int32 s) { + public TMap(byte k, byte v, int s) { keyType = k; valueType = v; size = s; } - public TType keyType = TType.STOP; - public TType valueType = TType.STOP; - public Int32 size = new Int32();; + public byte keyType = TType.STOP; + public byte valueType = TType.STOP; + public int size = 0; } diff --git a/lib/java/src/protocol/TProtocol.java b/lib/java/src/protocol/TProtocol.java index f44eb9ee..a60becbd 100644 --- a/lib/java/src/protocol/TProtocol.java +++ b/lib/java/src/protocol/TProtocol.java @@ -1,6 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; import com.facebook.thrift.TException; import com.facebook.thrift.transport.TTransport; @@ -15,95 +14,85 @@ public interface TProtocol { * Writing methods. */ - public int writeStructBegin (TTransport out, - TStruct struct) throws TException; - public int writeStructEnd (TTransport out) throws TException; + public void writeStructBegin (TTransport out, + TStruct struct) throws TException; - public int writeFieldBegin (TTransport out, - TField field) throws TException; + public void writeStructEnd (TTransport out) throws TException; - public int writeFieldEnd (TTransport out) throws TException; + public void writeFieldBegin (TTransport out, + TField field) throws TException; - public int writeFieldStop (TTransport out) throws TException; + public void writeFieldEnd (TTransport out) throws TException; - public int writeMapBegin (TTransport out, - TMap map) throws TException; + public void writeFieldStop (TTransport out) throws TException; - public int writeMapEnd (TTransport out) throws TException; + public void writeMapBegin (TTransport out, + TMap map) throws TException; - public int writeListBegin (TTransport out, - TList list) throws TException; + public void writeMapEnd (TTransport out) throws TException; - public int writeListEnd (TTransport out) throws TException; + public void writeListBegin (TTransport out, + TList list) throws TException; - public int writeSetBegin (TTransport out, - TSet set) throws TException; + public void writeListEnd (TTransport out) throws TException; - public int writeSetEnd (TTransport out) throws TException; + public void writeSetBegin (TTransport out, + TSet set) throws TException; - public int writeByte (TTransport out, - UInt8 b) throws TException; + public void writeSetEnd (TTransport out) throws TException; - public int writeU32 (TTransport out, - UInt32 u32) throws TException; + public void writeByte (TTransport out, + byte b) throws TException; - public int writeI32 (TTransport out, - Int32 i32) throws TException; + public void writeU32 (TTransport out, + int u32) throws TException; - public int writeU64 (TTransport out, - UInt64 u64) throws TException; + public void writeI32 (TTransport out, + int i32) throws TException; - public int writeI64 (TTransport out, - Int64 i64) throws TException; + public void writeU64 (TTransport out, + long u64) throws TException; - public int writeString (TTransport out, - TString str) throws TException; + public void writeI64 (TTransport out, + long i64) throws TException; + + public void writeString (TTransport out, + String str) throws TException; /** * Reading methods. */ - public int readStructBegin (TTransport in, - TStruct struct) throws TException; + public TStruct readStructBegin (TTransport in) throws TException; - public int readStructEnd (TTransport in) throws TException; + public void readStructEnd (TTransport in) throws TException; - public int readFieldBegin (TTransport in, - TField field) throws TException; + public TField readFieldBegin (TTransport in) throws TException; - public int readFieldEnd (TTransport in) throws TException; + public void readFieldEnd (TTransport in) throws TException; - public int readMapBegin (TTransport in, - TMap map) throws TException; + public TMap readMapBegin (TTransport in) throws TException; - public int readMapEnd (TTransport in) throws TException; + public void readMapEnd (TTransport in) throws TException; - public int readListBegin (TTransport in, - TList list) throws TException; + public TList readListBegin (TTransport in) throws TException; - public int readListEnd (TTransport in) throws TException; + public void readListEnd (TTransport in) throws TException; - public int readSetBegin (TTransport in, - TSet set) throws TException; + public TSet readSetBegin (TTransport in) throws TException; - public int readSetEnd (TTransport in) throws TException; + public void readSetEnd (TTransport in) throws TException; - public int readByte (TTransport in, - UInt8 b) throws TException; + public byte readByte (TTransport in) throws TException; - public int readU32 (TTransport in, - UInt32 u32) throws TException; + public int readU32 (TTransport in) throws TException; - public int readI32 (TTransport in, - Int32 i32) throws TException; + public int readI32 (TTransport in) throws TException; - public int readU64 (TTransport in, - UInt64 u64) throws TException; + public long readU64 (TTransport in) throws TException; - public int readI64 (TTransport in, - Int64 i64) throws TException; + public long readI64 (TTransport in) throws TException; - public int readString (TTransport in, - TString s) throws TException; + public String readString (TTransport in) throws TException; } diff --git a/lib/java/src/protocol/TProtocolUtil.java b/lib/java/src/protocol/TProtocolUtil.java index b182139b..b8e5afec 100644 --- a/lib/java/src/protocol/TProtocolUtil.java +++ b/lib/java/src/protocol/TProtocolUtil.java @@ -1,6 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; import com.facebook.thrift.TException; import com.facebook.thrift.transport.TTransport; @@ -11,94 +10,68 @@ import com.facebook.thrift.transport.TTransport; * @author Mark Slee */ public class TProtocolUtil { - public static int skip(TProtocol prot, TTransport in, TType type) + public static void skip(TProtocol prot, TTransport in, byte type) throws TException { switch (type) { - case BYTE: + case TType.BYTE: { - UInt8 b = new UInt8(); - return prot.readByte(in, b); + prot.readByte(in); } - case U32: + case TType.U32: + case TType.I32: { - UInt32 u32 = new UInt32(); - return prot.readU32(in, u32); + prot.readI32(in); } - case I32: + case TType.U64: + case TType.I64: { - Int32 i32 = new Int32(); - return prot.readI32(in, i32); + prot.readI64(in); } - case U64: + case TType.STRING: { - UInt64 u64 = new UInt64(); - return prot.readU64(in, u64); + prot.readString(in); } - case I64: + case TType.STRUCT: { - Int64 i64 = new Int64(); - return prot.readI64(in, i64); - } - case STRING: - { - TString s = new TString(); - return prot.readString(in, s); - } - case STRUCT: - { - int result = 0; - TString name = new TString(); - TStruct struct = new TStruct(); - TField field = new TField(); - result += prot.readStructBegin(in, struct); + prot.readStructBegin(in); while (true) { - result += prot.readFieldBegin(in, field); - if (field.type.equals(TType.STOP)) { + TField field = prot.readFieldBegin(in); + if (field.type == TType.STOP) { break; } - result += skip(prot, in, field.type); - result += prot.readFieldEnd(in); + skip(prot, in, field.type); + prot.readFieldEnd(in); } - result += prot.readStructEnd(in); - return result; + prot.readStructEnd(in); } - case MAP: + case TType.MAP: { - int result = 0; - TMap map = new TMap(); - result += prot.readMapBegin(in, map); - for (int i = 0; i < map.size.get(); i++) { - result += skip(prot, in, map.keyType); - result += skip(prot, in, map.valueType); + TMap map = prot.readMapBegin(in); + for (int i = 0; i < map.size; i++) { + skip(prot, in, map.keyType); + skip(prot, in, map.valueType); } - result += prot.readMapEnd(in); - return result; + prot.readMapEnd(in); } - case SET: - { - int result = 0; - TSet set = new TSet(); - result += prot.readSetBegin(in, set); - for (int i = 0; i < set.size.get(); i++) { - result += skip(prot, in, set.elemType); + case TType.SET: + { + TSet set = prot.readSetBegin(in); + for (int i = 0; i < set.size; i++) { + skip(prot, in, set.elemType); } - result += prot.readSetEnd(in); - return result; + prot.readSetEnd(in); } - case LIST: + case TType.LIST: { - int result = 0; - TList list = new TList(); - result += prot.readListBegin(in, list); - for (int i = 0; i < list.size.get(); i++) { - result += skip(prot, in, list.elemType); + TList list = prot.readListBegin(in); + for (int i = 0; i < list.size; i++) { + skip(prot, in, list.elemType); } - result += prot.readListEnd(in); - return result; + prot.readListEnd(in); } default: - return 0; + return; } } } diff --git a/lib/java/src/protocol/TSet.java b/lib/java/src/protocol/TSet.java index fa6e24dc..542f3f50 100644 --- a/lib/java/src/protocol/TSet.java +++ b/lib/java/src/protocol/TSet.java @@ -1,7 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; - /** * Helper class that encapsulates set metadata. * @@ -10,15 +8,11 @@ import com.facebook.thrift.types.*; public class TSet { public TSet() {} - public TSet(TType t, int s) { - this(t, new Int32(s)); - } - - public TSet(TType t, Int32 s) { + public TSet(byte t, int s) { elemType = t; size = s; } - public TType elemType = TType.STOP; - public Int32 size = new Int32(); + public byte elemType = TType.STOP; + public int size = 0; } diff --git a/lib/java/src/protocol/TStruct.java b/lib/java/src/protocol/TStruct.java index 2fbcb8f5..b8b94ce0 100644 --- a/lib/java/src/protocol/TStruct.java +++ b/lib/java/src/protocol/TStruct.java @@ -1,7 +1,5 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.*; - /** * Helper class that encapsulates struct metadata. * diff --git a/lib/java/src/protocol/TType.java b/lib/java/src/protocol/TType.java index 21b7914a..96f06d35 100644 --- a/lib/java/src/protocol/TType.java +++ b/lib/java/src/protocol/TType.java @@ -1,82 +1,22 @@ package com.facebook.thrift.protocol; -import com.facebook.thrift.types.UInt8; - /** * Type constants in the Thrift protocol. * * @author Mark Slee */ -public enum TType { - STOP (1), - BYTE (2), - U16 (3), - I16 (4), - U32 (5), - I32 (6), - U64 (7), - I64 (8), - STRING (9), - STRUCT (10), - MAP (11), - SET (12), - LIST (13); - - /** U8 identifier */ - private UInt8 code_; - - /** - * Constructor to create a TType object from its code. - * - * @param code The identifier code for this type - */ - private TType(int code) { - code_ = new UInt8((byte)code); - } - - /** - * Accessor for the code. - */ - public UInt8 getCode() { - return code_; - } - - /** - * Static method to get a type object from a byte. - * - * @param code The type code - */ - public static TType getType(UInt8 code) { - switch (code.get()) { - case 1: - return STOP; - case 2: - return BYTE; - case 3: - return U16; - case 4: - return I16; - case 5: - return U32; - case 6: - return I32; - case 7: - return U64; - case 8: - return I64; - case 9: - return STRING; - case 10: - return STRUCT; - case 11: - return MAP; - case 12: - return SET; - case 13: - return LIST; - default: - System.err.println("WARNING: Unidentified type code: " + code.get()); - return STOP; - } - } +public final class TType { + public static final byte STOP = 1; + public static final byte BYTE = 2; + public static final byte U16 = 3; + public static final byte I16 = 4; + public static final byte U32 = 5; + public static final byte I32 = 6; + public static final byte U64 = 7; + public static final byte I64 = 8; + public static final byte STRING = 9; + public static final byte STRUCT = 10; + public static final byte MAP = 11; + public static final byte SET = 12; + public static final byte LIST = 13; } diff --git a/lib/java/src/transport/TSocket.java b/lib/java/src/transport/TSocket.java index 2092f119..6b4fa3bb 100644 --- a/lib/java/src/transport/TSocket.java +++ b/lib/java/src/transport/TSocket.java @@ -32,8 +32,8 @@ public class TSocket extends TIOStreamTransport { socket_ = socket; if (isOpen()) { try { - inputStream_ = new BufferedInputStream(socket_.getInputStream()); - outputStream_ = new BufferedOutputStream(socket_.getOutputStream()); + inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024); + outputStream_ = new BufferedOutputStream(socket_.getOutputStream(), 1024); } catch (IOException iox) { close(); throw new TTransportException(iox); @@ -96,8 +96,8 @@ public class TSocket extends TIOStreamTransport { try { socket_.connect(new InetSocketAddress(host_, port_)); - inputStream_ = new BufferedInputStream(socket_.getInputStream()); - outputStream_ = new BufferedOutputStream(socket_.getOutputStream()); + inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024); + outputStream_ = new BufferedOutputStream(socket_.getOutputStream(), 1024); } catch (IOException iox) { close(); throw new TTransportException(iox); diff --git a/lib/java/src/types/Int32.java b/lib/java/src/types/Int32.java deleted file mode 100644 index e6a8cf2a..00000000 --- a/lib/java/src/types/Int32.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.facebook.thrift.types; - -import java.io.ByteArrayOutputStream; - -/** - * Wrapper for Pillar TyInt32. We have to flip the byte order in here - * because Pillar is little endian. - * - * @author Mark Slee (mcslee@facebook.com) - * - * See: http://darksleep.com/player/JavaAndUnsignedTypes.html - * - */ -public class Int32 { - private int intValue_ = 0; - private byte[] data_ = new byte[4]; - - public int get() { - return intValue_; - } - - public byte[] data() { - return data_; - } - - public Int32() { - for (int i = 0; i < 4; i++) { - data_[i] = 0; - } - } - - public Int32(byte[] buf, int offset) { - read(buf, offset); - } - - public Int32(int value) { - set(value); - } - - public void set(int value) { - intValue_ = value; - data_[0] = (byte)((intValue_ & 0xFF000000L) >> 24); - data_[1] = (byte)((intValue_ & 0x00FF0000L) >> 16); - data_[2] = (byte)((intValue_ & 0x0000FF00L) >> 8); - data_[3] = (byte)((intValue_ & 0x000000FFL)); - } - - public void read(byte[] buf, int offset) { - for (int i = 0; i < 4; i++) { - data_[i] = buf[offset+i]; - } - - int[] bytes = new int[4]; - bytes[0] = (0x000000FF & ((int)data_[0])); - bytes[1] = (0x000000FF & ((int)data_[1])); - bytes[2] = (0x000000FF & ((int)data_[2])); - bytes[3] = (0x000000FF & ((int)data_[3])); - intValue_ = ((int) (bytes[0] << 24 | bytes[1] << 16 | - bytes[2] << 8 | bytes[3])); - } - - public String toString() { - return String.valueOf(intValue_); - } - - public int hashCode() { - return intValue_; - } - - public boolean equals(Object that) { - return ((that instanceof Int32) && - (this.intValue_ == ((Int32) that).intValue_)); - } - -} diff --git a/lib/java/src/types/Int64.java b/lib/java/src/types/Int64.java deleted file mode 100644 index 12bef4bc..00000000 --- a/lib/java/src/types/Int64.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.facebook.thrift.types; - -import java.io.ByteArrayOutputStream; - -/** - * 64-bit integers, just a wrapper around a long, and a byte-order - * reverser. - * - * @author Mark Slee (mcslee@facebook.com) - * - */ -public class Int64 { - private long longValue_ = 0L; - private byte[] data_ = new byte[8]; - - public long get() { - return longValue_; - } - - public byte[] data() { - return data_; - } - - public Int64() { - for (int i = 0; i < 8; i++) data_[i] = (byte) 0; - } - - public Int64(long value) { - set(value); - } - - public Int64(byte[] buf, int offset) { - read(buf, offset); - } - - - /** - * Yes, this could be done in a loop, but written out this way makes - * it easier to see how the bytes are actually generated. - */ - public void set(long value) { - longValue_ = value; - data_[0] = (byte)((longValue_ & 0xFF00000000000000L) >> 56); - data_[1] = (byte)((longValue_ & 0x00FF000000000000L) >> 48); - data_[2] = (byte)((longValue_ & 0x0000FF0000000000L) >> 40); - data_[3] = (byte)((longValue_ & 0x000000FF00000000L) >> 32); - data_[4] = (byte)((longValue_ & 0x00000000FF000000L) >> 24); - data_[5] = (byte)((longValue_ & 0x0000000000FF0000L) >> 16); - data_[6] = (byte)((longValue_ & 0x000000000000FF00L) >> 8); - data_[7] = (byte)((longValue_ & 0x00000000000000FFL)); - } - - /** - * Reverse byte order to calculate the value. - */ - public void read(byte[] buf, int offset) { - for (int i = 0; i < 8; i++) { - data_[i] = buf[offset+i]; - } - - long[] bytes = new long[8]; - bytes[0] = (0xFF & ((long)data_[0])); - bytes[1] = (0xFF & ((long)data_[1])); - bytes[2] = (0xFF & ((long)data_[2])); - bytes[3] = (0xFF & ((long)data_[3])); - bytes[4] = (0xFF & ((long)data_[4])); - bytes[5] = (0xFF & ((long)data_[5])); - bytes[6] = (0xFF & ((long)data_[6])); - bytes[7] = (0xFF & ((long)data_[7])); - - longValue_ = ((long) ((bytes[0] << 56) | (bytes[1] << 48) | - (bytes[2] << 40) | (bytes[3] << 32) | - (bytes[4] << 24) | (bytes[5] << 16) | - (bytes[6] << 8) | (bytes[7]))); - } - - public String toString() { - return String.valueOf(longValue_); - } - - public int hashCode() { - return (int)longValue_; - } - - public boolean equals(Object that) { - return ((that instanceof Int64) && - (this.longValue_ == ((Int64) that).longValue_)); - } - -} diff --git a/lib/java/src/types/UInt32.java b/lib/java/src/types/UInt32.java deleted file mode 100644 index 52c6da06..00000000 --- a/lib/java/src/types/UInt32.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.facebook.thrift.types; - -import java.io.ByteArrayOutputStream; - -/** - * Bit-twiddling bullshit because java doesn't have unsigned types. - * Also, the JVM is big-endian, but Pillar is written on the little - * endian architecture, and it doesn't translated numbers to network - * byte order (also big-endian) when it transmits them. - * - * So, a UInt32 received by pillar will come over the net in little - * endian byte order, which means we have to reverse it for Java. - * - * @author Mark Slee (mcslee@facebook.com) - * - * See: http://darksleep.com/player/JavaAndUnsignedTypes.html - * - */ -public class UInt32 { - private long longValue_ = 0; - private byte[] data_ = new byte[4]; - - public long get() { - return longValue_; - } - - public int toInt() { - return (int) longValue_; - } - - public byte[] data() { - return data_; - } - - public UInt32() { - for (int i = 0; i < 4; i++) data_[i] = (byte) 0; - } - - public UInt32(byte[] buf, int offset) { - read(buf, offset); - } - - public UInt32(long value) { - set(value); - } - - public UInt32(int value) { - this((long)value); - } - - public void set(long value) { - if (value < 0) { - throw new RuntimeException("Cannot assign negative value to UInt32."); - } - longValue_ = value; - data_[0] = (byte)((longValue_ & 0xFF000000L) >> 24); - data_[1] = (byte)((longValue_ & 0x00FF0000L) >> 16); - data_[2] = (byte)((longValue_ & 0x0000FF00L) >> 8); - data_[3] = (byte)((longValue_ & 0x000000FFL)); - } - - public void read(byte[] buf, int offset) { - for (int i = 0; i < 4; i++) { - data_[i] = buf[offset+i]; - } - - int[] bytes = new int[4]; - bytes[0] = (0x000000FF & ((int)data_[0])); - bytes[1] = (0x000000FF & ((int)data_[1])); - bytes[2] = (0x000000FF & ((int)data_[2])); - bytes[3] = (0x000000FF & ((int)data_[3])); - longValue_ = ((long) ((bytes[0] << 24) | (bytes[1] << 16) | - (bytes[2] << 8) | (bytes[3]))) & 0xFFFFFFFFL; - } - - public String toString() { - return String.valueOf(longValue_); - } - - public int hashCode() { - return toInt(); - } - - public boolean equals(Object that) { - return ((that instanceof UInt32) && - (this.longValue_ == ((UInt32) that).longValue_)); - } - -} diff --git a/lib/java/src/types/UInt64.java b/lib/java/src/types/UInt64.java deleted file mode 100644 index 18cf44ae..00000000 --- a/lib/java/src/types/UInt64.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.facebook.thrift.types; - -import java.io.ByteArrayOutputStream; - -/** - * More bit-twiddling bullshit. Take a look at UInt32 for details about - * the endian difference between Pillar and the JVM. - * - * Since we don't do arithmetic on unsigned longs, we just implement - * them here as a raw byte array. The only caveat is the constructor - * that takes an integer value. That value will be big-endian (JVM) - * but the byte array needs to be little-endian (Pillar) - * - * @author Mark Slee (mcslee@facebook.com) - * - */ -public class UInt64 { - private byte[] data_ = new byte[8]; - - public byte[] data() { - return data_; - } - - public UInt64() { - for (int i = 0; i < 8; i++) { - data_[i] = (byte) 0; - } - } - - public UInt64(long value) { - set(value); - } - - public UInt64(byte[] buf, int offset) { - read(buf, offset); - } - - public long toLong() { - long[] bytes = new long[8]; - bytes[0] = (0xFF & ((long)data_[0])); - bytes[1] = (0xFF & ((long)data_[1])); - bytes[2] = (0xFF & ((long)data_[2])); - bytes[3] = (0xFF & ((long)data_[3])); - bytes[4] = (0xFF & ((long)data_[4])); - bytes[5] = (0xFF & ((long)data_[5])); - bytes[6] = (0xFF & ((long)data_[6])); - bytes[7] = (0xFF & ((long)data_[7])); - - return ((long) ((bytes[0] << 56) | (bytes[1] << 48) | - (bytes[2] << 40) | (bytes[3] << 32) | - (bytes[4] << 24) | (bytes[5] << 16) | - (bytes[6] << 8) | (bytes[7]))); - } - - /** - * "HOLD IT! Pay close attention..." -Prodigy - Out of Space - * - * This is some wacky business. We want to take the integer value - * represented JVM style and put it into an 8-byte array that mirrors - * Intel/Pillar endianness (little). To do this, we graduate the - * integer to a long and then reverse the byte order, so bytes - * 5-8 in the JVM long become bytes 3-0 in the Pillar representation. - * - * NOTE: value MUST be positive, or else shit gets ill. - */ - public void set(long longValue) { - if (longValue < 0) { - throw new RuntimeException("Cannot make UInt64 from a negative value."); - } - data_[0] = (byte)((longValue & 0xFF00000000000000L) >> 56); - data_[1] = (byte)((longValue & 0x00FF000000000000L) >> 48); - data_[2] = (byte)((longValue & 0x0000FF0000000000L) >> 40); - data_[3] = (byte)((longValue & 0x000000FF00000000L) >> 32); - data_[4] = (byte)((longValue & 0x00000000FF000000L) >> 24); - data_[5] = (byte)((longValue & 0x0000000000FF0000L) >> 16); - data_[6] = (byte)((longValue & 0x000000000000FF00L) >> 8); - data_[7] = (byte)((longValue & 0x00000000000000FFL)); - } - - public void read(byte[] buf, int offset) { - for (int i = 0; i < 8; i++) { - data_[i] = buf[offset+i]; - } - } - - /** - * Equivalent to << 8, shifting left by a byte. - */ - public UInt64 lshift() { - for (int i = 7; i > 0; i--) { - data_[i] = data_[i-1]; - } - data_[0] = (byte) 0; - return this; - } - - /** - * Equivalent to |, logical or across all bytes - */ - public UInt64 lor(UInt64 that) { - for (int i = 0; i < 8; i++) { - this.data_[i] = (byte) (this.data_[i] | that.data_[i]); - } - return this; - } - - public int hashCode() { - return ((0xFF & (int)data_[3]) << 24) | - ((0xFF & (int)data_[2]) << 16) | - ((0xFF & (int)data_[1]) << 8) | - ((0xFF & (int)data_[0])); - } - - public boolean equals(Object that) { - if (that instanceof UInt64) { - for (int i = 0; i < 8; i++) { - if (this.data_[i] != ((UInt64)that).data_[i]) { - return false; - } - } - return true; - } - return false; - } - -} diff --git a/lib/java/src/types/UInt8.java b/lib/java/src/types/UInt8.java deleted file mode 100644 index 640a7e11..00000000 --- a/lib/java/src/types/UInt8.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.facebook.thrift.types; - -import java.io.ByteArrayOutputStream; - -/** - * WILL IT EVER END? Even 'byte' is signed in Java, so we must use - * a short to represent bytes. - * - * @author Mark Slee (mcslee@facebook.com) - * - */ -public class UInt8 { - private short shortValue_; - private byte[] data_ = new byte[1]; - - public short get() { - return shortValue_; - } - - public byte[] data() { - return data_; - } - - public UInt8() { - data_[0] = (byte)0; - } - - public UInt8(byte[] buf, int offset) { - read(buf, offset); - } - - public UInt8(short value) { - set(value); - } - - public void set(short value) { - if (value < 0) throw new RuntimeException("Cannot apply negative value to UInt8"); - shortValue_ = value; - data_[0] = (byte)((shortValue_ & 0x00FF)); - } - - public void read(byte[] buf, int offset) { - data_[0] = buf[offset]; - shortValue_ = (short) (0x00FF & (short)data_[0]); - } - - public String toString() { - return String.valueOf(shortValue_); - } - - public int hashCode() { - return (int)shortValue_; - } - - public boolean equals(Object that) { - return ((that instanceof UInt8) && - (this.shortValue_ == ((UInt8) that).shortValue_)); - } - -}