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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Object
decodeEnvelope(ByteBuffer envelope)
Decodes a result envelope from binary.MethodCall
decodeMethodCall(ByteBuffer methodCall)
Decodes a message call from binary.ByteBuffer
encodeErrorEnvelope(String errorCode, String errorMessage, Object errorDetails)
Encodes an error result into a binary envelope message.ByteBuffer
encodeErrorEnvelopeWithStacktrace(String errorCode, String errorMessage, Object errorDetails, String errorStacktrace)
Encodes an error result into a binary envelope message with the native stacktrace.ByteBuffer
encodeMethodCall(MethodCall methodCall)
Encodes a message call into binary.ByteBuffer
encodeSuccessEnvelope(Object result)
Encodes a successful result into a binary envelope message.
-
-
-
Method Detail
-
encodeMethodCall
@NonNull ByteBuffer encodeMethodCall(@NonNull MethodCall methodCall)
Encodes a message call into binary.- Parameters:
methodCall
- aMethodCall
.- 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 aByteBuffer
.- 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 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
@NonNull Object decodeEnvelope(@NonNull ByteBuffer envelope)
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.
-
-