Interface MethodCodec

All Known Implementing Classes:
JSONMethodCodec, StandardMethodCodec

public interface MethodCodec
A codec for method calls and enveloped results.

Method calls are encoded as binary messages with enough structure that the codec can extract a method name String and an arguments Object. These data items are used to populate a MethodCall.

All operations throw IllegalArgumentException, if conversion fails.

  • Method Details

    • encodeMethodCall

      @NonNull ByteBuffer encodeMethodCall(@NonNull MethodCall methodCall)
      Encodes a message call into binary.
      Parameters:
      methodCall - a MethodCall.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • decodeMethodCall

      @NonNull MethodCall decodeMethodCall(@NonNull ByteBuffer methodCall)
      Decodes a message call from binary.
      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 ByteBuffer encodeSuccessEnvelope(@Nullable Object result)
      Encodes a successful result into a binary envelope message.
      Parameters:
      result - The result value, possibly null.
      Returns:
      a ByteBuffer containing the encoding between position 0 and the current position.
    • encodeErrorEnvelope

      @NonNull ByteBuffer encodeErrorEnvelope(@NonNull String errorCode, @Nullable String errorMessage, @Nullable Object errorDetails)
      Encodes an error result into a binary envelope message.
      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 ByteBuffer encodeErrorEnvelopeWithStacktrace(@NonNull String errorCode, @Nullable String errorMessage, @Nullable Object errorDetails, @Nullable String errorStacktrace)
      Encodes an error result into a binary envelope message with the native stacktrace.
      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 Object decodeEnvelope(@NonNull ByteBuffer envelope)
      Decodes a result envelope from binary.
      Parameters:
      envelope - the binary encoding of a result envelope as a ByteBuffer.
      Returns:
      the enveloped result Object.
      Throws:
      FlutterException - if the envelope was an error envelope.