Package io.flutter.plugin.common

# Class BinaryCodec

java.lang.Object
io.flutter.plugin.common.BinaryCodec

All Implemented Interfaces:
  `MessageCodec<ByteBuffer>`

public final class BinaryCodec extends Object implements MessageCodec<ByteBuffer>
A `MessageCodec` using unencoded binary messages, represented as `ByteBuffer`s.

This codec is guaranteed to be compatible with the corresponding BinaryCodec on the Dart side. These parts of the Flutter SDK are evolved synchronously.

On the Dart side, messages are represented using `ByteData`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final BinaryCodec`
  `INSTANCE`
  `static final BinaryCodec`
  `INSTANCE_DIRECT`
  A BinaryCodec that returns direct ByteBuffers from `decodeMessage` for better performance.

- ## Method Summary

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

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

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

- ## Field Details

  - ### INSTANCE

    public static final BinaryCodec INSTANCE

  - ### INSTANCE_DIRECT

    public static final BinaryCodec INSTANCE_DIRECT
    A BinaryCodec that returns direct ByteBuffers from `decodeMessage` for better performance.
    See Also:
      - `BinaryCodec(boolean)`

- ## Method Details

  - ### encodeMessage

    public ByteBuffer encodeMessage(@Nullable ByteBuffer message)
    Description copied from interface: `MessageCodec`
    Encodes the specified message into binary.
    Specified by:
      `encodeMessage` in interface `MessageCodec<ByteBuffer>`
    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

    public ByteBuffer decodeMessage(@Nullable ByteBuffer message)
    Description copied from interface: `MessageCodec`
    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.

    Specified by:
      `decodeMessage` in interface `MessageCodec<ByteBuffer>`
    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.