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
`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 into `buf`, 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 into `buf`, 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 into `buf`, 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 into `buf`, 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 into `buf`, 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 from `buf`, starting at `off` and reading for `len` bytes.
`static int` `iscVaxInteger2(byte[] buf, int off)` Variant of `iscVaxInteger(byte[], int, int)` specifically for two-byte integers.
`static long` `iscVaxLong(byte[] buf, int off, int len)` Reads Vax style integers (longs) from `buf`, starting at `off` and reading for `len` bytes.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### iscVaxInteger

    public static int iscVaxInteger(byte[] buf,
                                    int off,
                                    int len)

Reads Vax style integers from `buf`, starting at `off` and reading for `len` bytes.

This method is useful for lengths up to 4 bytes (i.e. normal Java integers (`int`). For larger lengths it will return `0`. Use `iscVaxLong(byte[], int, int)` for reading values with length up to 8 bytes. For decoding 2 byte integers, use `iscVaxInteger2(byte[], int)` for optimal performance.

Parameters:
  `buf` - byte array from which the integer is to be retrieved
  `off` - offset from which to start retrieving byte values
  `len` - 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 write
  `val` - value to encode
Throws:
  `java.io.IOException`

#### encodeVaxInteger

    public static void encodeVaxInteger(byte[] buf,
                                        int off,
                                        int val)

Encodes an integer using Vax encoding into `buf`, length prefix is included.

Parameters:
  `buf` - byte array of sufficient size
  `off` - offset to start writing
  `val` - 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 write
  `val` - value to encode
Throws:
  `java.io.IOException`

#### encodeVaxIntegerWithoutLength

    public static void encodeVaxIntegerWithoutLength(byte[] buf,
                                                     int off,
                                                     int val)

Encodes an integer using Vax encoding into `buf`, without length prefix.

Parameters:
  `buf` - byte array of sufficient size
  `off` - offset to start writing
  `val` - value to encode

#### iscVaxLong

    public static long iscVaxLong(byte[] buf,
                                  int off,
                                  int len)

Reads Vax style integers (longs) from `buf`, starting at `off` and reading for `len` bytes.

This method is useful for lengths up to 8 bytes (i.e. normal Java longs (`long`). For larger lengths it will return `0`.

Parameters:
  `buf` - byte array from which the long is to be retrieved
  `off` - offset from which to start retrieving byte values
  `len` - 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 write
  `val` - value to encode
Throws:
  `java.io.IOException`

#### encodeVaxLong

    public static void encodeVaxLong(byte[] buf,
                                     int off,
                                     long val)

Encodes a long using Vax encoding into `buf`, length prefix is included.

Parameters:
  `buf` - byte array of sufficient size
  `off` - offset to start writing
  `val` - 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 write
  `val` - value to encode
Throws:
  `java.io.IOException`

#### encodeVaxLongWithoutLength

    public static void encodeVaxLongWithoutLength(byte[] buf,
                                                  int off,
                                                  long val)

Encodes a long using Vax encoding into `buf`, without length prefix.

Parameters:
  `buf` - byte array of sufficient size
  `off` - offset to start writing
  `val` - value to encode

#### iscVaxInteger2

    public static int iscVaxInteger2(byte[] buf,
                                     int off)

Variant of `iscVaxInteger(byte[], int, int)` specifically for two-byte integers.

Parameters:
  `buf` - byte array from which the integer is to be retrieved
  `off` - 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 write
  `val` - 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 into `buf`, without length prefix.

Parameters:
  `buf` - byte array of sufficient size
  `off` - offset to start writing
  `val` - 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