Package io.flutter.plugin.common

# Interface MessageCodec<T>

All Known Implementing Classes:
  `BinaryCodec`, `JSONMessageCodec`, `StandardMessageCodec`, `StringCodec`

public interface MessageCodec<T>
A message encoding/decoding mechanism.

Both operations throw `IllegalArgumentException`, if conversion fails.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `T`
  `decodeMessage(ByteBuffer message)`
  Decodes the specified message from binary.
  `ByteBuffer`
  `encodeMessage(T message)`
  Encodes the specified message into binary.

- ## Method Details

  - ### encodeMessage

    @Nullable ByteBuffer encodeMessage(@Nullable T message)
    Encodes the specified message into binary.
    Parameters:
      `message` - the T message, possibly null.
    Returns:
      a ByteBuffer containing the encoding between position 0 and the current position, or null, if message is null.

  - ### decodeMessage

    @Nullable T decodeMessage(@Nullable ByteBuffer message)
    Decodes the specified message from binary.

    Warning: The ByteBuffer is "direct" and it won't be valid beyond this call. Storing the ByteBuffer and using it later and will lead to a `java.nio.BufferUnderflowException`. If you want to retain the data you'll need to copy it.

    Parameters:
      `message` - the `ByteBuffer` message, possibly null.
    Returns:
      a T value representation of the bytes between the given buffer's current position and its limit, or null, if message is null.