// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_METHOD_CODEC_PRIVATE_H_ #define FLUTTER_SHELL_PLATFORM_LINUX_FL_METHOD_CODEC_PRIVATE_H_ #include "flutter/shell/platform/linux/public/flutter_linux/fl_method_codec.h" #include "flutter/shell/platform/linux/public/flutter_linux/fl_method_response.h" G_BEGIN_DECLS /** * fl_method_codec_encode_method_call: * @codec: an #FlMethodCodec. * @name: method name. * @args: (allow-none): method arguments, or %NULL. * @error: (allow-none): #GError location to store the error occurring, or * %NULL. * * Encodes a method call. * * Returns: (transfer full): a binary encoding of this method call or %NULL if * not able to encode. */ GBytes* fl_method_codec_encode_method_call(FlMethodCodec* codec, const gchar* name, FlValue* args, GError** error); /** * fl_method_codec_decode_method_call: * @codec: an #FlMethodCodec. * @message: message to decode. * @name: (transfer full): location to write method name or %NULL if not * required. * @args: (transfer full): location to write method arguments, or %NULL if not * required. * @error: (allow-none): #GError location to store the error occurring, or * %NULL. * * Decodes a method call. * * Returns: %TRUE if successfully decoded. */ gboolean fl_method_codec_decode_method_call(FlMethodCodec* codec, GBytes* message, gchar** name, FlValue** args, GError** error); /** * fl_method_codec_encode_success_envelope: * @codec: an #FlMethodCodec. * @result: (allow-none): method result, or %NULL. * @error: (allow-none): #GError location to store the error occurring, or * %NULL. * * Encodes a successful response to a method call. * * Returns: (transfer full): a binary encoding of this response or %NULL if not * able to encode. */ GBytes* fl_method_codec_encode_success_envelope(FlMethodCodec* codec, FlValue* result, GError** error); /** * fl_method_codec_encode_error_envelope: * @codec: an #FlMethodCodec. * @code: an error code. * @message: (allow-none): an error message or %NULL. * @details: (allow-none): error details, or %NULL. * @error: (allow-none): #GError location to store the error occurring, or * %NULL. * * Encodes an error response to a method call. * * Returns: (transfer full): a binary encoding of this response or %NULL if not * able to encode. */ GBytes* fl_method_codec_encode_error_envelope(FlMethodCodec* codec, const gchar* code, const gchar* message, FlValue* details, GError** error); /** * fl_method_codec_decode_response: * @codec: an #FlMethodCodec. * @message: message to decode. * @error: (allow-none): #GError location to store the error occurring, or * %NULL. * * Decodes a response to a method call. If the call resulted in an error then * @error_code is set, otherwise it is %NULL. * * Returns: a new #FlMethodResponse or %NULL on error. */ FlMethodResponse* fl_method_codec_decode_response(FlMethodCodec* codec, GBytes* message, GError** error); G_END_DECLS #endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_METHOD_CODEC_PRIVATE_H_