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
ByteBuffer
containing 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
MethodCall
representation 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
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 supportingThrowable
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 supportingThrowable
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
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.
-