Interface Decoder.Binary<T>

  • Type Parameters:
    T - The type of the object that is decoded
    All Superinterfaces:
    Decoder
    All Known Implementing Classes:
    InputStreamDecoder, NoOpByteArrayCoder, NoOpByteBufferCoder
    Enclosing interface:
    Decoder

    public static interface Decoder.Binary<T>
    extends Decoder
    This interface defines how a custom object (of type T) is decoded from a web socket message in the form of a byte buffer.
    • Method Detail

      • decode

        T decode​(java.nio.ByteBuffer bytes)
          throws DecodeException
        Decode the given bytes into an object of type T.

        It is not safe for other threads to use the ByteBuffer until the decoding of the given bytes is complete. If the decoding completes successfully, the buffer's limit will be unchanged and the buffer's position will be equal to the limit. If the decoding does not complete successfully, the state of the buffer is undefined.

        Parameters:
        bytes - the bytes to be decoded.
        Returns:
        the decoded object.
        Throws:
        DecodeException - If the provided bytes cannot be decoded to type T
      • willDecode

        boolean willDecode​(java.nio.ByteBuffer bytes)
        Answer whether the given bytes can be decoded into an object of type T.

        It is not safe for other threads to use the ByteBuffer until this method completes. When the method completes, the buffer will be in the same state as it was at the start of the method call.

        Parameters:
        bytes - the bytes to be decoded.
        Returns:
        whether or not the bytes can be decoded by this decoder.