Package org.firebirdsql.gds
Class VaxEncoding
- java.lang.Object
-
- org.firebirdsql.gds.VaxEncoding
-
public final class VaxEncoding extends java.lang.Object
Helper methods for decoding Vax style (little endian) integers as used by Firebird from byte arrays.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
decodeVaxInteger2WithoutLength(java.io.InputStream in)
Decodes an integer using two byte Vax encoding from an input stream, without length prefix.static void
encodeVaxInteger(byte[] buf, int off, int val)
Encodes an integer using Vax encoding intobuf
, length prefix is included.static void
encodeVaxInteger(java.io.OutputStream out, int val)
Encodes an integer using Vax encoding into an output stream, length prefix is included.static void
encodeVaxInteger2WithoutLength(byte[] buf, int off, int val)
Encodes an integer using two byte Vax encoding intobuf
, without length prefix.static void
encodeVaxInteger2WithoutLength(java.io.OutputStream out, int val)
Encodes an integer using two byte Vax encoding into an output stream, without length prefix.static void
encodeVaxIntegerWithoutLength(byte[] buf, int off, int val)
Encodes an integer using Vax encoding intobuf
, without length prefix.static void
encodeVaxIntegerWithoutLength(java.io.OutputStream out, int val)
Encodes an integer using Vax encoding into an output stream, without length prefix.static void
encodeVaxLong(byte[] buf, int off, long val)
Encodes a long using Vax encoding intobuf
, length prefix is included.static void
encodeVaxLong(java.io.OutputStream out, long val)
Encodes a long using Vax encoding into an output stream, length prefix is included.static void
encodeVaxLongWithoutLength(byte[] buf, int off, long val)
Encodes a long using Vax encoding intobuf
, without length prefix.static void
encodeVaxLongWithoutLength(java.io.OutputStream out, long val)
Encodes a long using Vax encoding into an output stream, without length prefix.static int
iscVaxInteger(byte[] buf, int off, int len)
Reads Vax style integers frombuf
, starting atoff
and reading forlen
bytes.static int
iscVaxInteger2(byte[] buf, int off)
Variant ofiscVaxInteger(byte[], int, int)
specifically for two-byte integers.static long
iscVaxLong(byte[] buf, int off, int len)
Reads Vax style integers (longs) frombuf
, starting atoff
and reading forlen
bytes.
-
-
-
Method Detail
-
iscVaxInteger
public static int iscVaxInteger(byte[] buf, int off, int len)
Reads Vax style integers frombuf
, starting atoff
and reading forlen
bytes.This method is useful for lengths up to 4 bytes (i.e. normal Java integers (
int
). For larger lengths it will return0
. UseiscVaxLong(byte[], int, int)
for reading values with length up to 8 bytes. For decoding 2 byte integers, useiscVaxInteger2(byte[], int)
for optimal performance.- Parameters:
buf
- byte array from which the integer is to be retrievedoff
- offset from which to start retrieving byte valueslen
- number of bytes to read- Returns:
- integer value retrieved from the bytes
- See Also:
iscVaxLong(byte[], int, int)
,iscVaxInteger2(byte[], int)
-
encodeVaxInteger
public static void encodeVaxInteger(java.io.OutputStream out, int val) throws java.io.IOException
Encodes an integer using Vax encoding into an output stream, length prefix is included.- Parameters:
out
- output stream to writeval
- value to encode- Throws:
java.io.IOException
-
encodeVaxInteger
public static void encodeVaxInteger(byte[] buf, int off, int val)
Encodes an integer using Vax encoding intobuf
, length prefix is included.- Parameters:
buf
- byte array of sufficient sizeoff
- offset to start writingval
- value to encode
-
encodeVaxIntegerWithoutLength
public static void encodeVaxIntegerWithoutLength(java.io.OutputStream out, int val) throws java.io.IOException
Encodes an integer using Vax encoding into an output stream, without length prefix.- Parameters:
out
- output stream to writeval
- value to encode- Throws:
java.io.IOException
-
encodeVaxIntegerWithoutLength
public static void encodeVaxIntegerWithoutLength(byte[] buf, int off, int val)
Encodes an integer using Vax encoding intobuf
, without length prefix.- Parameters:
buf
- byte array of sufficient sizeoff
- offset to start writingval
- value to encode
-
iscVaxLong
public static long iscVaxLong(byte[] buf, int off, int len)
Reads Vax style integers (longs) frombuf
, starting atoff
and reading forlen
bytes.This method is useful for lengths up to 8 bytes (i.e. normal Java longs (
long
). For larger lengths it will return0
.- Parameters:
buf
- byte array from which the long is to be retrievedoff
- offset from which to start retrieving byte valueslen
- number of bytes to read- Returns:
- long value retrieved from the bytes
- See Also:
iscVaxInteger(byte[], int, int)
,iscVaxInteger2(byte[], int)
-
encodeVaxLong
public static void encodeVaxLong(java.io.OutputStream out, long val) throws java.io.IOException
Encodes a long using Vax encoding into an output stream, length prefix is included.- Parameters:
out
- output stream to writeval
- value to encode- Throws:
java.io.IOException
-
encodeVaxLong
public static void encodeVaxLong(byte[] buf, int off, long val)
Encodes a long using Vax encoding intobuf
, length prefix is included.- Parameters:
buf
- byte array of sufficient sizeoff
- offset to start writingval
- value to encode
-
encodeVaxLongWithoutLength
public static void encodeVaxLongWithoutLength(java.io.OutputStream out, long val) throws java.io.IOException
Encodes a long using Vax encoding into an output stream, without length prefix.- Parameters:
out
- output stream to writeval
- value to encode- Throws:
java.io.IOException
-
encodeVaxLongWithoutLength
public static void encodeVaxLongWithoutLength(byte[] buf, int off, long val)
Encodes a long using Vax encoding intobuf
, without length prefix.- Parameters:
buf
- byte array of sufficient sizeoff
- offset to start writingval
- value to encode
-
iscVaxInteger2
public static int iscVaxInteger2(byte[] buf, int off)
Variant ofiscVaxInteger(byte[], int, int)
specifically for two-byte integers.- Parameters:
buf
- byte array from which the integer is to be retrievedoff
- offset from which to start retrieving byte values- Returns:
- integer value retrieved from the bytes
- See Also:
iscVaxInteger(byte[], int, int)
,iscVaxLong(byte[], int, int)
-
encodeVaxInteger2WithoutLength
public static void encodeVaxInteger2WithoutLength(java.io.OutputStream out, int val) throws java.io.IOException
Encodes an integer using two byte Vax encoding into an output stream, without length prefix.- Parameters:
out
- output stream to writeval
- value to encode- Throws:
java.io.IOException
-
encodeVaxInteger2WithoutLength
public static void encodeVaxInteger2WithoutLength(byte[] buf, int off, int val)
Encodes an integer using two byte Vax encoding intobuf
, without length prefix.- Parameters:
buf
- byte array of sufficient sizeoff
- offset to start writingval
- value to encode- Since:
- 5.0.8
-
decodeVaxInteger2WithoutLength
public static int decodeVaxInteger2WithoutLength(java.io.InputStream in) throws java.io.IOException
Decodes an integer using two byte Vax encoding from an input stream, without length prefix.- Parameters:
in
- input stream to read- Returns:
- decoded value
- Throws:
java.io.IOException
- for errors reading from the stream, or if end-of-stream was reached before the full integer- Since:
- 5.0.7
-
-