Interface StreamDecoder

All Known Implementing Classes:
ProtonStreamDecoder

public interface StreamDecoder
Decode AMQP types from a InputStream instance. When reading from an input stream care should be take to capture the stream position and state and reset if not enough bytes are available for the decoder to complete reading an encoded type as the decoder is not required to handle partially available type encodings.
  • Method Details

    • newDecoderState

      StreamDecoderState newDecoderState()
      Creates a new StreamDecoderState instance that can be used when interacting with the Decoder. For decoding that occurs on more than one thread while sharing a single StreamDecoder instance a different state object per thread is required as the StreamDecoderState object can retain some state information during the decode process that could be corrupted if more than one thread were to share a single instance. For single threaded decoding work the StreamDecoder offers a utility cached StreamDecoderState API that will return the same instance on each call which can reduce allocation overhead and make using the StreamDecoder simpler.
      Returns:
      a newly constructed EncoderState instance.
    • getCachedDecoderState

      StreamDecoderState getCachedDecoderState()
      Return a singleton StreamDecoderState instance that is meant to be shared within single threaded decoder interactions. If more than one thread makes use of this cached StreamDecoderState the results of any decoding done using this state object is not guaranteed to be correct. The returned instance will have its reset method called to ensure that any previously stored state data is cleared before the next use.
      Returns:
      a cached StreamDecoderState linked to this Decoder instance that has been reset.
    • readBoolean

      Boolean readBoolean(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Boolean value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readBoolean

      boolean readBoolean(InputStream stream, StreamDecoderState state, boolean defaultValue) throws DecodeException
      Reads an encoded Byte value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readByte

      Byte readByte(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Byte value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readByte

      byte readByte(InputStream stream, StreamDecoderState state, byte defaultValue) throws DecodeException
      Reads an encoded Byte value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedByte

      UnsignedByte readUnsignedByte(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded UnsignedByte value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedByte

      byte readUnsignedByte(InputStream stream, StreamDecoderState state, byte defaultValue) throws DecodeException
      Reads an encoded UnsignedByte value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readCharacter

      Character readCharacter(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Character value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readCharacter

      char readCharacter(InputStream stream, StreamDecoderState state, char defaultValue) throws DecodeException
      Reads an encoded Character value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDecimal32

      Decimal32 readDecimal32(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Decimal32 value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDecimal64

      Decimal64 readDecimal64(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Decimal64 value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDecimal128

      Decimal128 readDecimal128(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Decimal128 value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readShort

      Short readShort(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Short value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readShort

      short readShort(InputStream stream, StreamDecoderState state, short defaultValue) throws DecodeException
      Reads an encoded Short value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedShort

      UnsignedShort readUnsignedShort(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded UnsignedShort value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedShort

      short readUnsignedShort(InputStream stream, StreamDecoderState state, short defaultValue) throws DecodeException
      Reads an encoded UnsignedShort value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedShort

      int readUnsignedShort(InputStream stream, StreamDecoderState state, int defaultValue) throws DecodeException
      Reads an encoded UnsignedShort value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readInteger

      Integer readInteger(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Integer value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readInteger

      int readInteger(InputStream stream, StreamDecoderState state, int defaultValue) throws DecodeException
      Reads an encoded Integer value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedInteger

      UnsignedInteger readUnsignedInteger(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded UnsignedInteger value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedInteger

      int readUnsignedInteger(InputStream stream, StreamDecoderState state, int defaultValue) throws DecodeException
      Reads an encoded UnsignedInteger value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedInteger

      long readUnsignedInteger(InputStream stream, StreamDecoderState state, long defaultValue) throws DecodeException
      Reads an encoded UnsignedInteger value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readLong

      Long readLong(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Long value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readLong

      long readLong(InputStream stream, StreamDecoderState state, long defaultValue) throws DecodeException
      Reads an encoded Long value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedLong

      UnsignedLong readUnsignedLong(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded UnsignedLong value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUnsignedLong

      long readUnsignedLong(InputStream stream, StreamDecoderState state, long defaultValue) throws DecodeException
      Reads an encoded UnsignedLong value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readFloat

      Float readFloat(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Float value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readFloat

      float readFloat(InputStream stream, StreamDecoderState state, float defaultValue) throws DecodeException
      Reads an encoded Float value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDouble

      Double readDouble(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Double value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDouble

      double readDouble(InputStream stream, StreamDecoderState state, double defaultValue) throws DecodeException
      Reads an encoded Double value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readBinary

      Binary readBinary(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Binary value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.

      The resulting Binary instance will contain a read-only view of the decoded bytes and any calls to access the underlying buffer will return a read-only ProtonBuffer.

      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readBinaryAsBuffer

      ProtonBuffer readBinaryAsBuffer(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Binary value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.

      The resulting ProtonBuffer instance will be a read-only view of the read in bytes.

      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source and returned in a ProtonBuffer.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readDeliveryTag

      DeliveryTag readDeliveryTag(InputStream stream, StreamDecoderState state) throws DecodeException
      This method expects to read a Binary encoded type from the provided stream and constructs a DeliveryTag type that wraps the bytes encoded. If the encoding is a NULL AMQP type then this method returns null.
      Parameters:
      stream - The InputStream to read a Binary encoded value from
      state - The current encoding state.
      Returns:
      a new DeliveryTag instance or null if an AMQP NULL encoding is found.
      Throws:
      DecodeException - if an error occurs while decoding the DeliveryTag instance.
    • readString

      String readString(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded String value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readSymbol

      Symbol readSymbol(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Symbol value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readSymbol

      String readSymbol(InputStream stream, StreamDecoderState state, String defaultValue) throws DecodeException
      Reads an encoded String value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readTimestamp

      Long readTimestamp(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded AMQP time stamp value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source and return a Long with the time value.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readTimestamp

      long readTimestamp(InputStream stream, StreamDecoderState state, long defaultValue) throws DecodeException
      Reads an encoded AMQP time stamp value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      defaultValue - A default value to return if the next encoded value is a Null encoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readUUID

      UUID readUUID(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded UUID value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readObject

      Object readObject(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded value from the given InputStream an return it as an Object which the caller must then interpret.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not able to be decoded.
    • readObject

      <T> T readObject(InputStream stream, StreamDecoderState state, Class<T> clazz) throws DecodeException
      Reads an encoded value from the given InputStream an return it as an Object which the caller must then interpret.
      Type Parameters:
      T - the type that will be used when casting and returning the decoded value.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      clazz - The Class type that should be used to cast the returned value.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not able to be decoded.
    • readMultiple

      <T> T[] readMultiple(InputStream stream, StreamDecoderState state, Class<T> clazz) throws DecodeException
      Reads one or more encoded values from the given InputStream an return it as an array of Object instances which the caller must then interpret.
      Type Parameters:
      T - the type that will be used when casting and returning the decoded value.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      clazz - The Class type that should be used to cast the returned array.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not able to be decoded.
    • readMap

      <K, V> Map<K,V> readMap(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded Map value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Type Parameters:
      K - The key type for the map that is being read.
      V - The value type for the map that is being read.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readList

      <V> List<V> readList(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads an encoded List value from the given InputStream assuming that the next value in the byte stream is that type. The operation fails if the next encoded type is not what was expected. If the caller wishes to recover from failed decode attempt they should make a note of the current read position and reset the input to make a further read attempt.
      Type Parameters:
      V - The value type for the list that is being read.
      Parameters:
      stream - The InputStream where the read operation takes place.
      state - The DecoderState that the decoder can use when decoding.
      Returns:
      the value read from the provided byte source.
      Throws:
      DecodeException - if the value fails to decode is not of the expected type,
    • readNextTypeDecoder

      StreamTypeDecoder<?> readNextTypeDecoder(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads from the given InputStream instance and returns a StreamTypeDecoder that can read the next encoded AMQP type from the stream's bytes. If an error occurs attempting to read and determine the next type decoder an DecodeException is thrown.
      Parameters:
      stream - The stream to read from to determine the next TypeDecoder needed.
      state - The DecoderState value that can be used for intermediate decoding tasks.
      Returns:
      a StreamTypeDecoder instance that can read the next type in the stream.
      Throws:
      DecodeException - if an error occurs while reading the next type decoder.
    • peekNextTypeDecoder

      StreamTypeDecoder<?> peekNextTypeDecoder(InputStream stream, StreamDecoderState state) throws DecodeException
      Peeks ahead in the given InputStream instance and returns a TypeDecoder that can read the next encoded AMQP type from the stream's bytes. If an error occurs attempting to read and determine the next type decoder an DecodeException is thrown. The underlying stream is not modified as a result of the peek operation and the returned TypeDecoder will fail to properly read the type until the encoding bytes are read. If the provided stream does not offer support for the mark API than this method can throw an UnsupportedOperationException.
      Parameters:
      stream - The stream to read from to determine the next TypeDecoder needed.
      state - The DecoderState value that can be used for intermediate decoding tasks.
      Returns:
      a TypeDecoder instance that can provide insight into the next type in the stream.
      Throws:
      DecodeException - if an error occurs while peeking ahead for the next type decoder.
    • registerDescribedTypeDecoder

      <V> StreamDecoder registerDescribedTypeDecoder(StreamDescribedTypeDecoder<V> decoder)
      Allows custom StreamDescribedTypeDecoder instances to be registered with this StreamDecoder which will be used if the described type encoding is encountered during decode operations.
      Type Parameters:
      V - The type that the decoder reads.
      Parameters:
      decoder - A StreamDescribedTypeDecoder instance to be registered with this StreamDecoder
      Returns:
      this StreamDecoder instance.