Package io.flutter.plugin.common
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 Summary
Modifier and TypeMethodDescriptiondecodeEnvelope(ByteBuffer envelope) Decodes a result envelope from binary.decodeMethodCall(ByteBuffer methodCall) Decodes a message call from binary.encodeErrorEnvelope(String errorCode, String errorMessage, Object errorDetails) Encodes an error result into a binary envelope message.encodeErrorEnvelopeWithStacktrace(String errorCode, String errorMessage, Object errorDetails, String errorStacktrace) Encodes an error result into a binary envelope message with the native stacktrace.encodeMethodCall(MethodCall methodCall) Encodes a message call into binary.encodeSuccessEnvelope(Object result) Encodes a successful result into a binary envelope message.
-
Method Details
-
encodeMethodCall
Encodes a message call into binary.- Parameters:
methodCall- aMethodCall.- Returns:
- a
ByteBuffercontaining the encoding between position 0 and the current position.
-
decodeMethodCall
Decodes a message call from binary.- Parameters:
methodCall- the binary encoding of the method call as aByteBuffer.- Returns:
- a
MethodCallrepresentation of the bytes between the given buffer's current position and its limit.
-
encodeSuccessEnvelope
Encodes a successful result into a binary envelope message.- Parameters:
result- The result value, possibly null.- Returns:
- a
ByteBuffercontaining 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 supportingThrowablein your codec. This is the most common value passed to this field.- Returns:
- a
ByteBuffercontaining 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 supportingThrowablein your codec. This is the most common value passed to this field.errorStacktrace- Platform stacktrace for the error. possibly null.- Returns:
- a
ByteBuffercontaining the encoding between position 0 and the current position.
-
decodeEnvelope
Decodes a result envelope from binary.- Parameters:
envelope- the binary encoding of a result envelope as aByteBuffer.- Returns:
- the enveloped result Object.
- Throws:
FlutterException- if the envelope was an error envelope.
-