summaryrefslogtreecommitdiff
path: root/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java')
-rw-r--r--java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java58
1 files changed, 53 insertions, 5 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java b/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java
index dd634eb94a..6f7a2fa3b2 100644
--- a/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java
+++ b/java/common/src/main/java/org/apache/qpid/transport/codec/BBDecoder.java
@@ -25,16 +25,14 @@ import java.nio.ByteOrder;
import org.apache.qpid.transport.Binary;
-
/**
- * BBDecoder
+ * Byte Buffer Decoder.
+ * Decoder concrete implementor using a backing byte buffer for decoding data.
*
* @author Rafael H. Schloming
*/
-
public final class BBDecoder extends AbstractDecoder
{
-
private ByteBuffer in;
public void init(ByteBuffer in)
@@ -93,4 +91,54 @@ public final class BBDecoder extends AbstractDecoder
return in.getLong();
}
-}
+ public byte[] readBin128()
+ {
+ byte[] result = new byte[16];
+ get(result);
+ return result;
+ }
+
+ public byte[] readBytes(int howManyBytes)
+ {
+ byte[] result = new byte[howManyBytes];
+ get(result);
+ return result;
+ }
+
+ public double readDouble()
+ {
+ return in.getDouble();
+ }
+
+ public float readFloat()
+ {
+ return in.getFloat();
+ }
+
+ public short readInt16()
+ {
+ return in.getShort();
+ }
+
+ public int readInt32()
+ {
+ return in.getInt();
+ }
+
+ public byte readInt8()
+ {
+ return in.get();
+ }
+
+ public byte[] readReaminingBytes()
+ {
+ byte[] result = new byte[in.limit() - in.position()];
+ get(result);
+ return result;
+ }
+
+ public long readInt64()
+ {
+ return in.getLong();
+ }
+} \ No newline at end of file