| Flutter Linux Embedder |

Functions
fl_method_codec.cc File Reference
`#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_codec.h"`
`#include "flutter/shell/platform/linux/fl_method_codec_private.h"`
`#include <gmodule.h>`

Go to the source code of this file.

## Functions
static void | fl_method_codec_class_init (FlMethodCodecClass *klass)
static void | fl_method_codec_init (FlMethodCodec *self)
GBytes * | fl_method_codec_encode_method_call (FlMethodCodec *self, const gchar *name, FlValue *args, GError **error)
gboolean | fl_method_codec_decode_method_call (FlMethodCodec *self, GBytes *message, gchar **name, FlValue **args, GError **error)
GBytes * | fl_method_codec_encode_success_envelope (FlMethodCodec *self, FlValue *result, GError **error)
GBytes * | fl_method_codec_encode_error_envelope (FlMethodCodec *self, const gchar *code, const gchar *message, FlValue *details, GError **error)
GBytes * | fl_method_codec_encode_response (FlMethodCodec *self, FlMethodResponse *response, GError **error)
FlMethodResponse * | fl_method_codec_decode_response (FlMethodCodec *self, GBytes *message, GError **error)

## Function Documentation

## ◆ fl_method_codec_class_init()

static void fl_method_codec_class_init | ( | FlMethodCodecClass * | klass | ) |
| static

Definition at line 12 of file fl_method_codec.cc.

12 {}

## ◆ fl_method_codec_decode_method_call()

gboolean fl_method_codec_decode_method_call | ( | FlMethodCodec * | self,
|  | GBytes * | message,
|  | gchar ** | name,
|  | FlValue ** | args,
|  | GError ** | error
| ) |  |

Definition at line 27 of file fl_method_codec.cc.

31 {
32 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), FALSE);
33 g_return_val_if_fail(message != nullptr, FALSE);
34 g_return_val_if_fail(name != nullptr, FALSE);
35 g_return_val_if_fail(args != nullptr, FALSE);
36
37 return FL_METHOD_CODEC_GET_CLASS(self)->decode_method_call(self, message,
38 name, args, error);
39 }
message
const char * message
Definition: fl_accessibility_handler.cc:21
args
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
Definition: fl_event_channel.h:89
error
const uint8_t uint32_t uint32_t GError ** error
Definition: fl_pixel_buffer_texture_test.cc:40

References args, error, and message.

Referenced by decode_error_method_call(), decode_method_call(), message_cb(), TEST(), and test_method_codec_decode_method_call().

## ◆ fl_method_codec_decode_response()

FlMethodResponse* fl_method_codec_decode_response | ( | FlMethodCodec * | self,
|  | GBytes * | message,
|  | GError ** | error
| ) |  |

Definition at line 88 of file fl_method_codec.cc.

90 {
91 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), nullptr);
92 g_return_val_if_fail(message != nullptr, nullptr);
93
94 if (g_bytes_get_size(message) == 0) {
95 return FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
96 }
97
98 return FL_METHOD_CODEC_GET_CLASS(self)->decode_response(self, message, error);
99 }
fl_method_not_implemented_response_new
G_MODULE_EXPORT FlMethodNotImplementedResponse * fl_method_not_implemented_response_new()
Definition: fl_method_response.cc:179

References error, fl_method_not_implemented_response_new(), and message.

Referenced by decode_error_response(), decode_response_with_error(), decode_response_with_success(), finish_method(), fl_method_channel_invoke_method_finish(), TEST(), and test_method_codec_decode_response().

## ◆ fl_method_codec_encode_error_envelope()

GBytes* fl_method_codec_encode_error_envelope | ( | FlMethodCodec * | self,
|  | const gchar * | code,
|  | const gchar * | message,
|  | FlValue * | details,
|  | GError ** | error
| ) |  |

Definition at line 50 of file fl_method_codec.cc.

54 {
55 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), nullptr);
56 g_return_val_if_fail(code != nullptr, nullptr);
57
58 return FL_METHOD_CODEC_GET_CLASS(self)->encode_error_envelope(
59 self, code, message, details, error);
60 }

References error, and message.

Referenced by encode_error_envelope(), fl_event_channel_send_error(), fl_method_codec_encode_response(), message_cb(), and TEST().

## ◆ fl_method_codec_encode_method_call()

GBytes* fl_method_codec_encode_method_call | ( | FlMethodCodec * | self,
|  | const gchar * | name,
|  | FlValue * | args,
|  | GError ** | error
| ) |  |

Definition at line 16 of file fl_method_codec.cc.

19 {
20 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), nullptr);
21 g_return_val_if_fail(name != nullptr, nullptr);
22
23 return FL_METHOD_CODEC_GET_CLASS(self)->encode_method_call(self, name, args,
24 error);
25 }

References args, and error.

Referenced by encode_method_call(), fl_method_channel_invoke_method(), resize_channel(), set_warns_on_channel_overflow(), TEST(), and test_method_codec_encode_method_call().

## ◆ fl_method_codec_encode_response()

GBytes* fl_method_codec_encode_response | ( | FlMethodCodec * | self,
|  | FlMethodResponse * | response,
|  | GError ** | error
| ) |  |

Definition at line 62 of file fl_method_codec.cc.

64 {
65 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), nullptr);
66 g_return_val_if_fail(FL_IS_METHOD_SUCCESS_RESPONSE(response) ||
67 FL_IS_METHOD_ERROR_RESPONSE(response) ||
68 FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(response),
69 nullptr);
70
71 if (FL_IS_METHOD_SUCCESS_RESPONSE(response)) {
72 FlMethodSuccessResponse* r = FL_METHOD_SUCCESS_RESPONSE(response);
73 return fl_method_codec_encode_success_envelope(
74 self, fl_method_success_response_get_result(r), error);
75 } else if (FL_IS_METHOD_ERROR_RESPONSE(response)) {
76 FlMethodErrorResponse* r = FL_METHOD_ERROR_RESPONSE(response);
77 return fl_method_codec_encode_error_envelope(
78 self, fl_method_error_response_get_code(r),
79 fl_method_error_response_get_message(r),
80 fl_method_error_response_get_details(r), error);
81 } else if (FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(response)) {
82 return g_bytes_new(nullptr, 0);
83 } else {
84 g_assert_not_reached();
85 }
86 }
fl_method_codec_encode_success_envelope
GBytes * fl_method_codec_encode_success_envelope(FlMethodCodec *self, FlValue *result, GError **error)
Definition: fl_method_codec.cc:41
fl_method_codec_encode_error_envelope
GBytes * fl_method_codec_encode_error_envelope(FlMethodCodec *self, const gchar *code, const gchar *message, FlValue *details, GError **error)
Definition: fl_method_codec.cc:50
fl_method_error_response_get_code
G_MODULE_EXPORT const gchar * fl_method_error_response_get_code(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:160
fl_method_error_response_get_message
G_MODULE_EXPORT const gchar * fl_method_error_response_get_message(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:166
fl_method_success_response_get_result
G_MODULE_EXPORT FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *self)
Definition: fl_method_response.cc:138
fl_method_error_response_get_details
G_MODULE_EXPORT FlValue * fl_method_error_response_get_details(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:172

References error, fl_method_codec_encode_error_envelope(), fl_method_codec_encode_success_envelope(), fl_method_error_response_get_code(), fl_method_error_response_get_details(), fl_method_error_response_get_message(), and fl_method_success_response_get_result().

Referenced by fl_method_channel_respond().

## ◆ fl_method_codec_encode_success_envelope()

GBytes* fl_method_codec_encode_success_envelope | ( | FlMethodCodec * | codec,
|  | FlValue * | result,
|  | GError ** | error
| ) |  |

fl_method_codec_encode_success_envelope: @codec: an #FlMethodCodec.

Returns
  : (allow-none): method result, or NULL. @error: (allow-none): #GError location to store the error occurring, or NULL. If `error` is not NULL, `*error` must be initialized (typically NULL, but an error from a previous call using GLib error handling is explicitly valid).

Encodes a successful response to a method call.

Returns: (transfer full): a binary encoding of this response or NULL if not able to encode.

Definition at line 41 of file fl_method_codec.cc.

43 {
44 g_return_val_if_fail(FL_IS_METHOD_CODEC(self), nullptr);
45
46 return FL_METHOD_CODEC_GET_CLASS(self)->encode_success_envelope(self, result,
47 error);
48 }

References error.

Referenced by encode_success_envelope(), fl_event_channel_send(), fl_method_codec_encode_response(), message_cb(), and TEST().

## ◆ fl_method_codec_init()

static void fl_method_codec_init | ( | FlMethodCodec * | self | ) |
| static

Definition at line 14 of file fl_method_codec.cc.

14 {}