Class StandardMethodCodec

java.lang.Object
io.flutter.plugin.common.StandardMethodCodec
All Implemented Interfaces:
MethodCodec

public final class StandardMethodCodec extends Object implements MethodCodec
A MethodCodec using the Flutter standard binary encoding.

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

Values supported as method arguments and result payloads are those supported by StandardMessageCodec.

  • Field Details

  • Constructor Details

    • StandardMethodCodec

      public StandardMethodCodec(@NonNull StandardMessageCodec messageCodec)
      Creates a new method codec based on the specified message codec.
  • Method Details

    • encodeMethodCall

      @NonNull public ByteBuffer encodeMethodCall(@NonNull MethodCall methodCall)
      Description copied from interface: MethodCodec
      Encodes a message call into binary.
      Specified by:
      encodeMethodCall in interface MethodCodec
      Parameters:
      methodCall - a MethodCall.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • decodeMethodCall

      @NonNull public MethodCall decodeMethodCall(@NonNull ByteBuffer methodCall)
      Description copied from interface: MethodCodec
      Decodes a message call from binary.
      Specified by:
      decodeMethodCall in interface MethodCodec
      Parameters:
      methodCall - the binary encoding of the method call as a ByteBuffer.
      Returns:
      a MethodCall representation of the bytes between the given buffer's current position and its limit.
    • encodeSuccessEnvelope

      @NonNull public ByteBuffer encodeSuccessEnvelope(@NonNull Object result)
      Description copied from interface: MethodCodec
      Encodes a successful result into a binary envelope message.
      Specified by:
      encodeSuccessEnvelope in interface MethodCodec
      Parameters:
      result - The result value, possibly null.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • encodeErrorEnvelope

      @NonNull public ByteBuffer encodeErrorEnvelope(@NonNull String errorCode, @NonNull String errorMessage, @NonNull Object errorDetails)
      Description copied from interface: MethodCodec
      Encodes an error result into a binary envelope message.
      Specified by:
      encodeErrorEnvelope in interface MethodCodec
      Parameters:
      errorCode - An error code String.
      errorMessage - An error message String, possibly null.
      errorDetails - Error details, possibly null. Consider supporting Throwable in your codec. This is the most common value passed to this field.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • encodeErrorEnvelopeWithStacktrace

      @NonNull public ByteBuffer encodeErrorEnvelopeWithStacktrace(@NonNull String errorCode, @NonNull String errorMessage, @NonNull Object errorDetails, @NonNull String errorStacktrace)
      Description copied from interface: MethodCodec
      Encodes an error result into a binary envelope message with the native stacktrace.
      Specified by:
      encodeErrorEnvelopeWithStacktrace in interface MethodCodec
      Parameters:
      errorCode - An error code String.
      errorMessage - An error message String, possibly null.
      errorDetails - Error details, possibly null. Consider supporting Throwable in your codec. This is the most common value passed to this field.
      errorStacktrace - Platform stacktrace for the error. possibly null.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • decodeEnvelope

      @NonNull public Object decodeEnvelope(@NonNull ByteBuffer envelope)
      Description copied from interface: MethodCodec
      Decodes a result envelope from binary.
      Specified by:
      decodeEnvelope in interface MethodCodec
      Parameters:
      envelope - the binary encoding of a result envelope as a ByteBuffer.
      Returns:
      the enveloped result Object.