Flutter Engine
 
Loading...
Searching...
No Matches
fl_method_response.cc File Reference

Go to the source code of this file.

Classes

struct  _FlMethodSuccessResponse
 
struct  _FlMethodErrorResponse
 
struct  _FlMethodNotImplementedResponse
 

Functions

 G_DEFINE_TYPE (FlMethodSuccessResponse, fl_method_success_response, fl_method_response_get_type()) G_DEFINE_TYPE(FlMethodErrorResponse
 
 fl_method_response_get_type ()) G_DEFINE_TYPE(FlMethodNotImplementedResponse
 
static void fl_method_response_init (FlMethodResponse *self)
 
static void fl_method_success_response_dispose (GObject *object)
 
static void fl_method_success_response_class_init (FlMethodSuccessResponseClass *klass)
 
static void fl_method_success_response_init (FlMethodSuccessResponse *self)
 
static void fl_method_error_response_dispose (GObject *object)
 
static void fl_method_error_response_class_init (FlMethodErrorResponseClass *klass)
 
static void fl_method_error_response_init (FlMethodErrorResponse *self)
 
static void fl_method_not_implemented_response_class_init (FlMethodNotImplementedResponseClass *klass)
 
static void fl_method_not_implemented_response_init (FlMethodNotImplementedResponse *self)
 
G_MODULE_EXPORT FlValuefl_method_response_get_result (FlMethodResponse *self, GError **error)
 
G_MODULE_EXPORT FlMethodSuccessResponse * fl_method_success_response_new (FlValue *result)
 
G_MODULE_EXPORT FlValuefl_method_success_response_get_result (FlMethodSuccessResponse *self)
 
G_MODULE_EXPORT FlMethodErrorResponse * fl_method_error_response_new (const gchar *code, const gchar *message, FlValue *details)
 
G_MODULE_EXPORT const gchar * fl_method_error_response_get_code (FlMethodErrorResponse *self)
 
G_MODULE_EXPORT const gchar * fl_method_error_response_get_message (FlMethodErrorResponse *self)
 
G_MODULE_EXPORT FlValuefl_method_error_response_get_details (FlMethodErrorResponse *self)
 
G_MODULE_EXPORT FlMethodNotImplementedResponse * fl_method_not_implemented_response_new ()
 

Variables

 fl_method_error_response
 
 fl_method_not_implemented_response
 

Function Documentation

◆ fl_method_error_response_class_init()

static void fl_method_error_response_class_init ( FlMethodErrorResponseClass *  klass)
static

Definition at line 69 of file fl_method_response.cc.

70 {
71 G_OBJECT_CLASS(klass)->dispose = fl_method_error_response_dispose;
72}
static void fl_method_error_response_dispose(GObject *object)

References fl_method_error_response_dispose().

◆ fl_method_error_response_dispose()

static void fl_method_error_response_dispose ( GObject *  object)
static

Definition at line 59 of file fl_method_response.cc.

59 {
60 FlMethodErrorResponse* self = FL_METHOD_ERROR_RESPONSE(object);
61
62 g_clear_pointer(&self->code, g_free);
63 g_clear_pointer(&self->message, g_free);
64 g_clear_pointer(&self->details, fl_value_unref);
65
66 G_OBJECT_CLASS(fl_method_error_response_parent_class)->dispose(object);
67}
G_MODULE_EXPORT void fl_value_unref(FlValue *self)
Definition fl_value.cc:400

References fl_value_unref(), and self.

Referenced by fl_method_error_response_class_init().

◆ fl_method_error_response_get_code()

G_MODULE_EXPORT const gchar * fl_method_error_response_get_code ( FlMethodErrorResponse *  self)

Definition at line 160 of file fl_method_response.cc.

161 {
162 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(self), nullptr);
163 return self->code;
164}

References self.

Referenced by decode_response_with_error(), decode_response_with_error(), fl_method_codec_encode_response(), fl_method_response_get_result(), fl_mock_binary_messenger_send_on_channel(), message_cb(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_error_response_get_details()

G_MODULE_EXPORT FlValue * fl_method_error_response_get_details ( FlMethodErrorResponse *  self)

Definition at line 172 of file fl_method_response.cc.

173 {
174 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(self), nullptr);
175 return self->details;
176}

References self.

Referenced by decode_response_with_error(), decode_response_with_error(), fl_method_codec_encode_response(), fl_method_response_get_result(), fl_mock_binary_messenger_send_on_channel(), message_cb(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_error_response_get_message()

G_MODULE_EXPORT const gchar * fl_method_error_response_get_message ( FlMethodErrorResponse *  self)

Definition at line 166 of file fl_method_response.cc.

167 {
168 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(self), nullptr);
169 return self->message;
170}

References self.

Referenced by decode_response_with_error(), decode_response_with_error(), fl_method_codec_encode_response(), fl_method_response_get_result(), fl_mock_binary_messenger_send_on_channel(), message_cb(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_error_response_init()

static void fl_method_error_response_init ( FlMethodErrorResponse *  self)
static

Definition at line 74 of file fl_method_response.cc.

74{}

◆ fl_method_error_response_new()

G_MODULE_EXPORT FlMethodErrorResponse * fl_method_error_response_new ( const gchar *  code,
const gchar *  message,
FlValue details 
)

Definition at line 144 of file fl_method_response.cc.

147 {
148 g_return_val_if_fail(code != nullptr, nullptr);
149
150 FlMethodErrorResponse* self = FL_METHOD_ERROR_RESPONSE(
151 g_object_new(fl_method_error_response_get_type(), nullptr));
152
153 self->code = g_strdup(code);
154 self->message = g_strdup(message);
155 self->details = details != nullptr ? fl_value_ref(details) : nullptr;
156
157 return self;
158}
G_BEGIN_DECLS GBytes * message
G_MODULE_EXPORT FlValue * fl_value_ref(FlValue *self)
Definition fl_value.cc:394

References fl_value_ref(), message, and self.

Referenced by activate_system_cursor(), clipboard_get_data(), clipboard_get_data(), clipboard_set_data(), create_regular(), create_regular(), destroy_window(), destroy_window(), fl_json_method_codec_decode_response(), fl_method_call_respond_error(), fl_standard_method_codec_decode_response(), fl_test_codec_decode_response(), handle_method_call(), modify_regular(), modify_regular(), set_client(), set_editable_size_and_transform(), system_exit_application(), system_exit_application(), system_sound_play(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_not_implemented_response_class_init()

static void fl_method_not_implemented_response_class_init ( FlMethodNotImplementedResponseClass *  klass)
static

Definition at line 76 of file fl_method_response.cc.

77 {}

◆ fl_method_not_implemented_response_init()

static void fl_method_not_implemented_response_init ( FlMethodNotImplementedResponse *  self)
static

Definition at line 79 of file fl_method_response.cc.

80 {}

◆ fl_method_not_implemented_response_new()

G_MODULE_EXPORT FlMethodNotImplementedResponse * fl_method_not_implemented_response_new ( )

Definition at line 179 of file fl_method_response.cc.

179 {
180 return FL_METHOD_NOT_IMPLEMENTED_RESPONSE(
181 g_object_new(fl_method_not_implemented_response_get_type(), nullptr));
182}

Referenced by fl_method_call_respond_not_implemented(), fl_method_codec_decode_response(), method_call_cb(), method_call_cb(), method_call_cb(), method_call_cb(), method_call_cb(), TEST(), TEST(), and TEST().

◆ fl_method_response_get_result()

G_MODULE_EXPORT FlValue * fl_method_response_get_result ( FlMethodResponse *  self,
GError **  error 
)

Definition at line 82 of file fl_method_response.cc.

83 {
84 if (FL_IS_METHOD_SUCCESS_RESPONSE(self)) {
86 FL_METHOD_SUCCESS_RESPONSE(self));
87 }
88
89 if (FL_IS_METHOD_ERROR_RESPONSE(self)) {
90 const gchar* code =
91 fl_method_error_response_get_code(FL_METHOD_ERROR_RESPONSE(self));
92 const gchar* message =
93 fl_method_error_response_get_message(FL_METHOD_ERROR_RESPONSE(self));
94 FlValue* details =
95 fl_method_error_response_get_details(FL_METHOD_ERROR_RESPONSE(self));
96 g_autofree gchar* details_text = nullptr;
97 if (details != nullptr) {
98 details_text = fl_value_to_string(details);
99 }
100
101 g_autoptr(GString) error_message = g_string_new("");
102 g_string_append_printf(error_message, "Remote code returned error %s",
103 code);
104 if (message != nullptr) {
105 g_string_append_printf(error_message, ": %s", message);
106 }
107 if (details_text != nullptr) {
108 g_string_append_printf(error_message, " %s", details_text);
109 }
110 g_set_error_literal(error, FL_METHOD_RESPONSE_ERROR,
112 error_message->str);
113 return nullptr;
114 } else if (FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(self)) {
115 g_set_error(error, FL_METHOD_RESPONSE_ERROR,
117 "Requested method is not implemented");
118 return nullptr;
119 } else {
120 g_set_error(error, FL_METHOD_RESPONSE_ERROR,
121 FL_METHOD_RESPONSE_ERROR_FAILED, "Unknown response type");
122 return nullptr;
123 }
124}
g_autoptr(GMutexLocker) locker
G_MODULE_EXPORT FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *self)
G_MODULE_EXPORT const gchar * fl_method_error_response_get_message(FlMethodErrorResponse *self)
G_MODULE_EXPORT FlValue * fl_method_error_response_get_details(FlMethodErrorResponse *self)
G_MODULE_EXPORT const gchar * fl_method_error_response_get_code(FlMethodErrorResponse *self)
@ FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED
@ FL_METHOD_RESPONSE_ERROR_FAILED
@ FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR
#define FL_METHOD_RESPONSE_ERROR
const uint8_t uint32_t uint32_t GError ** error
G_MODULE_EXPORT gchar * fl_value_to_string(FlValue *value)
Definition fl_value.cc:846
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42

References error, fl_method_error_response_get_code(), fl_method_error_response_get_details(), fl_method_error_response_get_message(), FL_METHOD_RESPONSE_ERROR, FL_METHOD_RESPONSE_ERROR_FAILED, FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED, FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR, fl_method_success_response_get_result(), fl_value_to_string(), g_autoptr(), message, and self.

Referenced by fl_text_input_channel_perform_action_finish(), fl_text_input_channel_update_editing_state_finish(), fl_text_input_channel_update_editing_state_with_deltas_finish(), get_exit_response(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_response_get_type()

fl_method_response_get_type ( )

Definition at line 38 of file fl_method_response.cc.

40 {}

◆ fl_method_response_init()

static void fl_method_response_init ( FlMethodResponse *  self)
static

Definition at line 42 of file fl_method_response.cc.

42{}

◆ fl_method_success_response_class_init()

static void fl_method_success_response_class_init ( FlMethodSuccessResponseClass *  klass)
static

Definition at line 52 of file fl_method_response.cc.

53 {
54 G_OBJECT_CLASS(klass)->dispose = fl_method_success_response_dispose;
55}
static void fl_method_success_response_dispose(GObject *object)

References fl_method_success_response_dispose().

◆ fl_method_success_response_dispose()

static void fl_method_success_response_dispose ( GObject *  object)
static

Definition at line 44 of file fl_method_response.cc.

44 {
45 FlMethodSuccessResponse* self = FL_METHOD_SUCCESS_RESPONSE(object);
46
47 g_clear_pointer(&self->result, fl_value_unref);
48
49 G_OBJECT_CLASS(fl_method_success_response_parent_class)->dispose(object);
50}

References fl_value_unref(), and self.

Referenced by fl_method_success_response_class_init().

◆ fl_method_success_response_get_result()

G_MODULE_EXPORT FlValue * fl_method_success_response_get_result ( FlMethodSuccessResponse *  response)

fl_method_success_response_get_result: @response: an #FlMethodSuccessResponse.

Gets the result of the method call.

Returns: an FlValue.

Definition at line 138 of file fl_method_response.cc.

139 {
140 g_return_val_if_fail(FL_IS_METHOD_SUCCESS_RESPONSE(self), nullptr);
141 return self->result;
142}

References self.

Referenced by decode_response_with_success(), decode_response_with_success(), fl_method_codec_encode_response(), fl_method_response_get_result(), fl_mock_binary_messenger_send_on_channel(), fl_test_application_activate(), parse_create_regular_response(), set_client(), set_editing_state(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ fl_method_success_response_init()

static void fl_method_success_response_init ( FlMethodSuccessResponse *  self)
static

Definition at line 57 of file fl_method_response.cc.

57{}

◆ fl_method_success_response_new()

G_MODULE_EXPORT FlMethodSuccessResponse * fl_method_success_response_new ( FlValue result)

◆ G_DEFINE_TYPE()

G_DEFINE_TYPE ( FlMethodSuccessResponse  ,
fl_method_success_response  ,
fl_method_response_get_type()   
)

Variable Documentation

◆ fl_method_error_response

fl_method_error_response

Definition at line 34 of file fl_method_response.cc.

◆ fl_method_not_implemented_response

fl_method_not_implemented_response

Definition at line 37 of file fl_method_response.cc.