java.lang.Object
org.firebirdsql.gds.VaxEncoding
Helper methods for decoding Vax style (little endian) integers as used by Firebird from byte arrays.
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
Method Summary
Modifier and TypeMethodDescriptionstatic intDecodes an integer using two byte Vax encoding from an input stream, without length prefix.static voidencodeVaxInteger(byte[] buf, int off, int val) Encodes an integer using Vax encoding intobuf, length prefix is included.static voidencodeVaxInteger(OutputStream out, int val) Encodes an integer using Vax encoding into an output stream, length prefix is included.static voidencodeVaxInteger2WithoutLength(OutputStream out, int val) Encodes an integer using two byte Vax encoding into an output stream, without length prefix.static voidencodeVaxIntegerWithoutLength(byte[] buf, int off, int val) Encodes an integer using Vax encoding intobuf, without length prefix.static voidencodeVaxIntegerWithoutLength(OutputStream out, int val) Encodes an integer using Vax encoding into an output stream, without length prefix.static voidencodeVaxLong(byte[] buf, int off, long val) Encodes a long using Vax encoding intobuf, length prefix is included.static voidencodeVaxLong(OutputStream out, long val) Encodes a long using Vax encoding into an output stream, length prefix is included.static voidencodeVaxLongWithoutLength(byte[] buf, int off, long val) Encodes a long using Vax encoding intobuf, without length prefix.static voidencodeVaxLongWithoutLength(OutputStream out, long val) Encodes a long using Vax encoding into an output stream, without length prefix.static intiscVaxInteger(byte[] buf, int off, int len) Reads Vax style integers frombuf, starting atoffand reading forlenbytes.static intiscVaxInteger2(byte[] buf, int off) Variant ofiscVaxInteger(byte[], int, int)specifically for two-byte integers.static longiscVaxLong(byte[] buf, int off, int len) Reads Vax style integers (longs) frombuf, starting atoffand reading forlenbytes.
-
Method Details
-
iscVaxInteger
public static int iscVaxInteger(byte[] buf, int off, int len) Reads Vax style integers frombuf, starting atoffand reading forlenbytes.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:
-
encodeVaxInteger
Encodes an integer using Vax encoding into an output stream, length prefix is included.- Parameters:
out- output stream to writeval- value to encode- Throws:
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
Encodes an integer using Vax encoding into an output stream, without length prefix.- Parameters:
out- output stream to writeval- value to encode- Throws:
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 atoffand reading forlenbytes.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:
-
encodeVaxLong
Encodes a long using Vax encoding into an output stream, length prefix is included.- Parameters:
out- output stream to writeval- value to encode- Throws:
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
Encodes a long using Vax encoding into an output stream, without length prefix.- Parameters:
out- output stream to writeval- value to encode- Throws:
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:
-
encodeVaxInteger2WithoutLength
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:
IOException
-
decodeVaxInteger2WithoutLength
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:
IOException- for errors reading from the stream, or if end-of-stream was reached before the full integer- Since:
- 6
-