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 Detail

      • encodeMethodCall

        ByteBuffer encodeMethodCall​(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

        MethodCall decodeMethodCall​(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

        ByteBuffer encodeSuccessEnvelope​(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

        ByteBuffer encodeErrorEnvelope​(String errorCode,
                                       String errorMessage,
                                       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

        ByteBuffer encodeErrorEnvelopeWithStacktrace​(String errorCode,
                                                     String errorMessage,
                                                     Object errorDetails,
                                                     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

        Object decodeEnvelope​(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.