public class

CborDecoder

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.util.encoding.cbor.CborDecoder

Class Overview

Provides a decoder capable of handling CBOR encoded data from a InputStream.

Summary

Fields
protected final PushbackInputStream m_is
Public Constructors
CborDecoder(InputStream is)
Creates a new CborDecoder instance.
Public Methods
CborType peekType()
Peeks in the input stream for the upcoming type.
long readArrayLength()
Prolog to reading an array value in CBOR format.
boolean readBoolean()
Reads a boolean value in CBOR format.
Object readBreak()
Reads a "break"/stop value in CBOR format.
byte[] readByteString()
Reads a byte string value in CBOR format.
long readByteStringLength()
Prolog to reading a byte string value in CBOR format.
double readDouble()
Reads a double-precision float value in CBOR format.
float readFloat()
Reads a single-precision float value in CBOR format.
double readHalfPrecisionFloat()
Reads a half-precision float value in CBOR format.
long readInt()
Reads a signed or unsigned integer value in CBOR format.
int readInt16()
Reads a signed or unsigned 16-bit integer value in CBOR format.
long readInt32()
Reads a signed or unsigned 32-bit integer value in CBOR format.
long readInt64()
Reads a signed or unsigned 64-bit integer value in CBOR format.
int readInt8()
Reads a signed or unsigned 8-bit integer value in CBOR format.
long readMapLength()
Prolog to reading a map of key-value pairs in CBOR format.
Object readNull()
Reads a null-value in CBOR format.
byte readSimpleValue()
Reads a single byte value in CBOR format.
int readSmallInt()
Reads a signed or unsigned small (<= 23) integer value in CBOR format.
long readTag()
Reads a semantic tag value in CBOR format.
String readTextString()
Reads an UTF-8 encoded string value in CBOR format.
long readTextStringLength()
Prolog to reading an UTF-8 encoded string value in CBOR format.
Object readUndefined()
Reads an undefined value in CBOR format.
Protected Methods
long expectIntegerType(int ib)
Reads the next major type from the underlying input stream, and verifies whether it matches the given expectation.
int readMajorType(int majorType)
Reads the next major type from the underlying input stream, and verifies whether it matches the given expectation.
void readMajorTypeExact(int majorType, int subtype)
Reads the next major type from the underlying input stream, and verifies whether it matches the given expectations.
long readMajorTypeWithSize(int majorType)
Reads the next major type from the underlying input stream, verifies whether it matches the given expectation, and decodes the payload into a size.
long readUInt(int length, boolean breakAllowed)
Reads an unsigned integer with a given length-indicator.
int readUInt16()
Reads an unsigned 16-bit integer value
long readUInt32()
Reads an unsigned 32-bit integer value
long readUInt64()
Reads an unsigned 64-bit integer value
int readUInt8()
Reads an unsigned 8-bit integer value
long readUIntExact(int expectedLength, int length)
Reads an unsigned integer with a given length-indicator.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected final PushbackInputStream m_is

Public Constructors

public CborDecoder (InputStream is)

Creates a new CborDecoder instance.

Parameters
is the actual input stream to read the CBOR-encoded data from, cannot be null.

Public Methods

public CborType peekType ()

Peeks in the input stream for the upcoming type.

Returns
  • the upcoming type in the stream, or null in case of an end-of-stream.
Throws
IOException in case of I/O problems reading the CBOR-type from the underlying input stream.

public long readArrayLength ()

Prolog to reading an array value in CBOR format.

Returns
  • the number of elements in the array to read, or -1 in case of infinite-length arrays.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public boolean readBoolean ()

Reads a boolean value in CBOR format.

Returns
  • the read boolean.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public Object readBreak ()

Reads a "break"/stop value in CBOR format.

Returns
  • always null.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public byte[] readByteString ()

Reads a byte string value in CBOR format.

Returns
  • the read byte string, never null. In case the encoded string has a length of 0, an empty string is returned.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public long readByteStringLength ()

Prolog to reading a byte string value in CBOR format.

Returns
  • the number of bytes in the string to read, or -1 in case of infinite-length strings.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public double readDouble ()

Reads a double-precision float value in CBOR format.

Returns
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public float readFloat ()

Reads a single-precision float value in CBOR format.

Returns
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public double readHalfPrecisionFloat ()

Reads a half-precision float value in CBOR format.

Returns
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public long readInt ()

Reads a signed or unsigned integer value in CBOR format.

Returns
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public int readInt16 ()

Reads a signed or unsigned 16-bit integer value in CBOR format.

Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying output stream.

public long readInt32 ()

Reads a signed or unsigned 32-bit integer value in CBOR format.

Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying output stream.

public long readInt64 ()

Reads a signed or unsigned 64-bit integer value in CBOR format.

Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying output stream.

public int readInt8 ()

Reads a signed or unsigned 8-bit integer value in CBOR format.

Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying output stream.

public long readMapLength ()

Prolog to reading a map of key-value pairs in CBOR format.

Returns
  • the number of entries in the map, >= 0.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public Object readNull ()

Reads a null-value in CBOR format.

Returns
  • always null.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public byte readSimpleValue ()

Reads a single byte value in CBOR format.

Returns
  • the read byte value.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public int readSmallInt ()

Reads a signed or unsigned small (<= 23) integer value in CBOR format.

Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying output stream.

public long readTag ()

Reads a semantic tag value in CBOR format.

Returns
  • the read tag value.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public String readTextString ()

Reads an UTF-8 encoded string value in CBOR format.

Returns
  • the read UTF-8 encoded string, never null. In case the encoded string has a length of 0, an empty string is returned.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public long readTextStringLength ()

Prolog to reading an UTF-8 encoded string value in CBOR format.

Returns
  • the length of the string to read, or -1 in case of infinite-length strings.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

public Object readUndefined ()

Reads an undefined value in CBOR format.

Returns
  • always null.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

Protected Methods

protected long expectIntegerType (int ib)

Reads the next major type from the underlying input stream, and verifies whether it matches the given expectation.

Returns
  • either -1 if the major type was an signed integer, or 0 otherwise.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

protected int readMajorType (int majorType)

Reads the next major type from the underlying input stream, and verifies whether it matches the given expectation.

Parameters
majorType the expected major type, cannot be null (unchecked).
Returns
  • the read subtype, or payload, of the read major type.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

protected void readMajorTypeExact (int majorType, int subtype)

Reads the next major type from the underlying input stream, and verifies whether it matches the given expectations.

Parameters
majorType the expected major type, cannot be null (unchecked);
subtype the expected subtype.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

protected long readMajorTypeWithSize (int majorType)

Reads the next major type from the underlying input stream, verifies whether it matches the given expectation, and decodes the payload into a size.

Parameters
majorType the expected major type, cannot be null (unchecked).
Returns
  • the number of succeeding bytes, >= 0, or -1 if an infinite-length type is read.
Throws
IOException in case of I/O problems reading the CBOR-encoded value from the underlying input stream.

protected long readUInt (int length, boolean breakAllowed)

Reads an unsigned integer with a given length-indicator.

Parameters
length the length indicator to use;
Returns
  • the read unsigned integer, as long value.
Throws
IOException in case of I/O problems reading the unsigned integer from the underlying input stream.

protected int readUInt16 ()

Reads an unsigned 16-bit integer value

Returns
Throws
IOException in case of I/O problems writing the CBOR-encoded value to the underlying output stream.

protected long readUInt32 ()

Reads an unsigned 32-bit integer value

Returns
Throws
IOException in case of I/O problems writing the CBOR-encoded value to the underlying output stream.

protected long readUInt64 ()

Reads an unsigned 64-bit integer value

Returns
Throws
IOException in case of I/O problems writing the CBOR-encoded value to the underlying output stream.

protected int readUInt8 ()

Reads an unsigned 8-bit integer value

Returns
Throws
IOException in case of I/O problems writing the CBOR-encoded value to the underlying output stream.

protected long readUIntExact (int expectedLength, int length)

Reads an unsigned integer with a given length-indicator.

Parameters
length the length indicator to use;
Returns
  • the read unsigned integer, as long value.
Throws
IOException in case of I/O problems reading the unsigned integer from the underlying input stream.