29 G_DEFINE_TYPE(FlMethodResponse, fl_method_response, G_TYPE_OBJECT)
31 fl_method_success_response,
40 static
void fl_method_response_class_init(FlMethodResponseClass* klass) {}
45 FlMethodSuccessResponse*
self = FL_METHOD_SUCCESS_RESPONSE(
object);
49 G_OBJECT_CLASS(fl_method_success_response_parent_class)->dispose(
object);
53 FlMethodSuccessResponseClass* klass) {
60 FlMethodErrorResponse*
self = FL_METHOD_ERROR_RESPONSE(
object);
62 g_clear_pointer(&self->code, g_free);
63 g_clear_pointer(&self->message, g_free);
66 G_OBJECT_CLASS(fl_method_error_response_parent_class)->dispose(
object);
70 FlMethodErrorResponseClass* klass) {
77 FlMethodNotImplementedResponseClass* klass) {}
80 FlMethodNotImplementedResponse*
self) {}
84 if (FL_IS_METHOD_SUCCESS_RESPONSE(
self)) {
86 FL_METHOD_SUCCESS_RESPONSE(
self));
89 if (FL_IS_METHOD_ERROR_RESPONSE(
self)) {
92 const gchar* message =
96 g_autofree gchar* details_text =
nullptr;
97 if (details !=
nullptr) {
101 g_autoptr(GString) error_message = g_string_new(
"");
102 g_string_append_printf(error_message,
"Remote code returned error %s",
104 if (message !=
nullptr) {
105 g_string_append_printf(error_message,
": %s", message);
107 if (details_text !=
nullptr) {
108 g_string_append_printf(error_message,
" %s", details_text);
114 }
else if (FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(
self)) {
117 "Requested method is not implemented");
128 FlMethodSuccessResponse*
self = FL_METHOD_SUCCESS_RESPONSE(
129 g_object_new(fl_method_success_response_get_type(),
nullptr));
139 FlMethodSuccessResponse*
self) {
140 g_return_val_if_fail(FL_IS_METHOD_SUCCESS_RESPONSE(
self),
nullptr);
146 const gchar* message,
148 g_return_val_if_fail(code !=
nullptr,
nullptr);
150 FlMethodErrorResponse*
self = FL_METHOD_ERROR_RESPONSE(
151 g_object_new(fl_method_error_response_get_type(),
nullptr));
153 self->code = g_strdup(code);
154 self->message = g_strdup(message);
155 self->details = details !=
nullptr ?
fl_value_ref(details) :
nullptr;
161 FlMethodErrorResponse*
self) {
162 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(
self),
nullptr);
167 FlMethodErrorResponse*
self) {
168 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(
self),
nullptr);
169 return self->message;
173 FlMethodErrorResponse*
self) {
174 g_return_val_if_fail(FL_IS_METHOD_ERROR_RESPONSE(
self),
nullptr);
175 return self->details;
178 G_MODULE_EXPORT FlMethodNotImplementedResponse*
180 return FL_METHOD_NOT_IMPLEMENTED_RESPONSE(
181 g_object_new(fl_method_not_implemented_response_get_type(),
nullptr));