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
ByteBuffer encodeMethodCall(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
MethodCall decodeMethodCall(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
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 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
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 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
Object decodeEnvelope(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.
-
-