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)
37  // NOLINTEND(readability-identifier-naming)
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,
63  FL,
65  FlMethodResponse)
66 
67 G_MODULE_EXPORT
68 G_DECLARE_FINAL_TYPE(FlMethodNotImplementedResponse,
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  */
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  */
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