| Flutter Linux Embedder |

fl_method_response.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FLUTTER_SHELL_PLATFORM_LINUX_PUBLIC_FLUTTER_LINUX_FL_METHOD_RESPONSE_H_
6 #define FLUTTER_SHELL_PLATFORM_LINUX_PUBLIC_FLUTTER_LINUX_FL_METHOD_RESPONSE_H_
7
8 #if !defined(__FLUTTER_LINUX_INSIDE__) && !defined(FLUTTER_LINUX_COMPILATION)
9 #error "Only <flutter_linux/flutter_linux.h> can be included directly."
10 #endif
11
12 #include <glib-object.h>
13 #include <gmodule.h>
14
15 #include "fl_value.h"
16
17 G_BEGIN_DECLS
18
19 /**
20 * FlMethodResponseError:
21 * @FL_METHOD_RESPONSE_ERROR_FAILED: Call failed due to an unspecified error.
22 * @FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR: An error was returned by the other
23 * side of the channel.
24 * @FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED: The requested method is not
25 * implemented.
26 *
27 * Errors set by `fl_method_response_get_result` when the method call response
28 * is not #FlMethodSuccessResponse.
29 */
30 #define FL_METHOD_RESPONSE_ERROR fl_method_response_error_quark()
31
32 typedef enum {
33 // NOLINTBEGIN(readability-identifier-naming)
34 FL_METHOD_RESPONSE_ERROR_FAILED,
35 FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR,
36 FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED,
37 // NOLINTEND(readability-identifier-naming)
38 } FlMethodResponseError;
39
40 GQuark fl_method_response_error_quark(void) G_GNUC_CONST;
41
42 G_MODULE_EXPORT
43 G_DECLARE_DERIVABLE_TYPE(FlMethodResponse,
44 fl_method_response,
45 FL,
46 METHOD_RESPONSE,
47 GObject)
48
49 struct _FlMethodResponseClass {
50 GObjectClass parent_class;
51 };
52
53 G_MODULE_EXPORT
54 G_DECLARE_FINAL_TYPE(FlMethodSuccessResponse,
55 fl_method_success_response,
56 FL,
57 METHOD_SUCCESS_RESPONSE,
58 FlMethodResponse)
59
60 G_MODULE_EXPORT
61 G_DECLARE_FINAL_TYPE(FlMethodErrorResponse,
62 fl_method_error_response,
63 FL,
64 METHOD_ERROR_RESPONSE,
65 FlMethodResponse)
66
67 G_MODULE_EXPORT
68 G_DECLARE_FINAL_TYPE(FlMethodNotImplementedResponse,
69 fl_method_not_implemented_response,
70 FL,
71 METHOD_NOT_IMPLEMENTED_RESPONSE,
72 FlMethodResponse)
73
74 /**
75 * FlMethodResponse:
76 *
77 * #FlMethodResponse contains the information returned when an #FlMethodChannel
78 * method call returns. If you expect the method call to be successful use
79 * fl_method_response_get_result(). If you want to handle error cases then you
80 * should use code like:
81 *
82 * |[<!-- language="C" -->
83 * if (FL_IS_METHOD_SUCCESS_RESPONSE (response)) {
84 * FlValue *result =
85 * fl_method_success_response_get_result(
86 * FL_METHOD_SUCCESS_RESPONSE (response));
87 * handle_result (result);
88 * } else if (FL_IS_METHOD_ERROR_RESPONSE (response)) {
89 * FlMethodErrorResponse *error_response =
90 * FL_METHOD_ERROR_RESPONSE (response);
91 * handle_error (fl_method_error_response_get_code (error_response),
92 * fl_method_error_response_get_message (error_response),
93 * fl_method_error_response_get_details (error_response));
94 * }
95 * else if (FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE (response)) {
96 * handle_not_implemented ();
97 * }
98 * }
99 * ]|
100 */
101
102 /**
103 * FlMethodSuccessResponse:
104 *
105 * #FlMethodSuccessResponse is the #FlMethodResponse returned when a method call
106 * has successfully completed. The result of the method call is obtained using
107 * `fl_method_success_response_get_result`.
108 */
109
110 /**
111 * FlMethodErrorResponse:
112 *
113 * #FlMethodErrorResponse is the #FlMethodResponse returned when a method call
114 * results in an error. The error details are obtained using
115 * `fl_method_error_response_get_code`, `fl_method_error_response_get_message`
116 * and `fl_method_error_response_get_details`.
117 */
118
119 /**
120 * FlMethodNotImplementedResponse:
121 *
122 * #FlMethodNotImplementedResponse is the #FlMethodResponse returned when a
123 * method call is not implemented.
124 */
125
126 /**
127 * fl_method_response_get_result:
128 * @response: an #FlMethodResponse.
129 * @error: (allow-none): #GError location to store the error occurring, or %NULL
130 * to ignore.
131 *
132 * Gets the result of a method call, or an error if the response wasn't
133 * successful.
134 *
135 * Returns: an #FlValue or %NULL on error.
136 */
137 FlValue* fl_method_response_get_result(FlMethodResponse* response,
138 GError** error);
139
140 /**
141 * fl_method_success_response_new:
142 * @result: (allow-none): the #FlValue returned by the method call or %NULL.
143 *
144 * Creates a response to a method call when that method has successfully
145 * completed.
146 *
147 * Returns: a new #FlMethodResponse.
148 */
149 FlMethodSuccessResponse* fl_method_success_response_new(FlValue* result);
150
151 /**
152 * fl_method_success_response_get_result:
153 * @response: an #FlMethodSuccessResponse.
154 *
155 * Gets the result of the method call.
156 *
157 * Returns: an #FlValue.
158 */
159 FlValue* fl_method_success_response_get_result(
160 FlMethodSuccessResponse* response);
161
162 /**
163 * fl_method_error_response_new:
164 * @result: an #FlValue.
165 * @code: an error code.
166 * @message: (allow-none): an error message.
167 * @details: (allow-none): error details.
168 *
169 * Creates a response to a method call when that method has returned an error.
170 *
171 * Returns: a new #FlMethodErrorResponse.
172 */
173 FlMethodErrorResponse* fl_method_error_response_new(const gchar* code,
174 const gchar* message,
175 FlValue* details);
176
177 /**
178 * fl_method_error_response_get_code:
179 * @response: an #FlMethodErrorResponse.
180 *
181 * Gets the error code reported.
182 *
183 * Returns: an error code.
184 */
185 const gchar* fl_method_error_response_get_code(FlMethodErrorResponse* response);
186
187 /**
188 * fl_method_error_response_get_message:
189 * @response: an #FlMethodErrorResponse.
190 *
191 * Gets the error message reported.
192 *
193 * Returns: an error message or %NULL if no error message provided.
194 */
195 const gchar* fl_method_error_response_get_message(
196 FlMethodErrorResponse* response);
197
198 /**
199 * fl_method_error_response_get_details:
200 * @response: an #FlMethodErrorResponse.
201 *
202 * Gets the details provided with this error.
203 *
204 * Returns: an #FlValue or %NULL if no details provided.
205 */
206 FlValue* fl_method_error_response_get_details(FlMethodErrorResponse* response);
207
208 /**
209 * fl_method_not_implemented_response_new:
210 *
211 * Creates a response to a method call when that method does not exist.
212 *
213 * Returns: a new #FlMethodNotImplementedResponse.
214 */
215 FlMethodNotImplementedResponse* fl_method_not_implemented_response_new();
216
217 G_END_DECLS
218
219 #endif // FLUTTER_SHELL_PLATFORM_LINUX_PUBLIC_FLUTTER_LINUX_FL_METHOD_RESPONSE_H_
fl_method_error_response
G_MODULE_EXPORT fl_method_error_response
Definition: fl_method_response.h:62
fl_method_error_response_new
G_MODULE_EXPORT FlMethodErrorResponse * fl_method_error_response_new(const gchar *code, const gchar *message, FlValue *details)
Definition: fl_method_response.cc:144
fl_method_not_implemented_response_new
G_MODULE_EXPORT FlMethodNotImplementedResponse * fl_method_not_implemented_response_new()
Definition: fl_method_response.cc:179
FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR
@ FL_METHOD_RESPONSE_ERROR_REMOTE_ERROR
Definition: fl_method_response.h:35
FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED
@ FL_METHOD_RESPONSE_ERROR_NOT_IMPLEMENTED
Definition: fl_method_response.h:36
G_DECLARE_FINAL_TYPE
G_MODULE_EXPORT G_DECLARE_FINAL_TYPE(FlMethodSuccessResponse, fl_method_success_response, FL, METHOD_SUCCESS_RESPONSE, FlMethodResponse) G_MODULE_EXPORT G_DECLARE_FINAL_TYPE(FlMethodErrorResponse
FlValue
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:40
FL
G_MODULE_EXPORT FL
Definition: fl_method_response.h:63
fl_method_success_response_new
FlMethodSuccessResponse * fl_method_success_response_new(FlValue *result)
Definition: fl_method_response.cc:126
fl_method_success_response_get_result
FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *response)
Definition: fl_method_response.cc:138
fl_method_response_get_result
G_MODULE_EXPORT FlValue * fl_method_response_get_result(FlMethodResponse *self, GError **error)
Definition: fl_method_response.cc:82
fl_method_error_response_get_message
const G_MODULE_EXPORT gchar * fl_method_error_response_get_message(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:166
FL_METHOD_RESPONSE_ERROR_FAILED
@ FL_METHOD_RESPONSE_ERROR_FAILED
Definition: fl_method_response.h:34
error
G_MODULE_EXPORT FlMethodResponse G_MODULE_EXPORT GError ** error
Definition: fl_method_response.h:138
fl_method_response_error_quark
GQuark fl_method_response_error_quark(void) G_GNUC_CONST
fl_method_error_response_get_details
G_MODULE_EXPORT FlValue * fl_method_error_response_get_details(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:172
FlMethodResponseError
FlMethodResponseError
Definition: fl_method_response.h:32
G_DECLARE_DERIVABLE_TYPE
G_MODULE_EXPORT G_DECLARE_DERIVABLE_TYPE(FlMethodResponse, fl_method_response, FL, METHOD_RESPONSE, GObject) struct _FlMethodResponseClass
Definition: fl_method_response.h:43
result
GAsyncResult * result
Definition: fl_text_input_plugin.cc:106
fl_method_error_response_get_code
const G_MODULE_EXPORT gchar * fl_method_error_response_get_code(FlMethodErrorResponse *self)
Definition: fl_method_response.cc:160
fl_value.h
METHOD_ERROR_RESPONSE
G_MODULE_EXPORT METHOD_ERROR_RESPONSE
Definition: fl_method_response.h:64
fl_method_not_implemented_response
fl_method_not_implemented_response
Definition: fl_method_response.cc:37