Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
Loading...
Searching...
No Matches
fl_message_codec.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_MESSAGE_CODEC_H_
6
#define FLUTTER_SHELL_PLATFORM_LINUX_PUBLIC_FLUTTER_LINUX_FL_MESSAGE_CODEC_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
* FlMessageCodecError:
21
* @FL_MESSAGE_CODEC_ERROR_FAILED: Codec failed due to an unspecified error.
22
* @FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA: Codec ran out of data reading a value.
23
* @FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA: Additional data encountered in
24
* message.
25
* @FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE: Codec encountered an unsupported
26
* #FlValue.
27
*
28
* Errors for #FlMessageCodec objects to set on failures.
29
*/
30
#define FL_MESSAGE_CODEC_ERROR fl_message_codec_error_quark()
31
32
typedef
enum
{
33
FL_MESSAGE_CODEC_ERROR_FAILED
,
34
FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
,
35
FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
,
36
FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
,
37
}
FlMessageCodecError
;
38
39
G_MODULE_EXPORT
40
GQuark
fl_message_codec_error_quark
(
void
) G_GNUC_CONST;
41
42
G_MODULE_EXPORT
43
G_DECLARE_DERIVABLE_TYPE
(FlMessageCodec,
44
fl_message_codec,
45
FL
,
46
MESSAGE_CODEC,
47
GObject)
48
49
/**
50
* FlMessageCodec:
51
*
52
* #FlMessageCodec is a message encoding/decoding mechanism that operates on
53
* #FlValue objects. Both operations returns errors if the conversion fails.
54
* Such situations should be treated as programming errors.
55
*
56
* #FlMessageCodec matches the MethodCodec class in the Flutter services
57
* library.
58
*/
59
60
struct
_FlMessageCodecClass {
61
GObjectClass parent_class;
62
63
/**
64
* FlMessageCodec::encode_message:
65
* @codec: an #FlMessageCodec.
66
* @message: message to encode or %NULL to encode the null value.
67
* @error: (allow-none): #GError location to store the error occurring, or
68
* %NULL. If `error` is not %NULL, `*error` must be initialized (typically
69
* %NULL, but an error from a previous call using GLib error handling is
70
* explicitly valid).
71
*
72
* Virtual method to encode a message. A subclass must implement this method.
73
* If the subclass cannot handle the type of @message then it must generate a
74
* FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE error.
75
*
76
* Returns: a binary message or %NULL on error.
77
*/
78
GBytes* (*encode_message)(FlMessageCodec* codec,
79
FlValue
*
message
,
80
GError**
error
);
81
82
/**
83
* FlMessageCodec::decode_message:
84
* @codec: an #FlMessageCodec.
85
* @message: binary message to decode.
86
* @error: (allow-none): #GError location to store the error occurring, or
87
* %NULL. If `error` is not %NULL, `*error` must be initialized (typically
88
* %NULL, but an error from a previous call using GLib error handling is
89
* explicitly valid).
90
*
91
* Virtual method to decode a message. A subclass must implement this method.
92
* If @message is too small then a #FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA error
93
* must be generated. If @message is too large then a
94
* #FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA error must be generated.
95
*
96
* Returns: an #FlValue or %NULL on error.
97
*/
98
FlValue
* (*decode_message)(FlMessageCodec* codec,
99
GBytes*
message
,
100
GError**
error
);
101
};
102
103
/**
104
* fl_message_codec_encode_message:
105
* @codec: an #FlMessageCodec.
106
* @buffer: buffer to write to.
107
* @message: message to encode or %NULL to encode the null value.
108
* @error: (allow-none): #GError location to store the error occurring, or
109
* %NULL. If `error` is not %NULL, `*error` must be initialized (typically
110
* %NULL, but an error from a previous call using GLib error handling is
111
* explicitly valid).
112
*
113
* Encodes a message into a binary representation.
114
*
115
* Returns: a binary encoded message or %NULL on error.
116
*/
117
GBytes*
fl_message_codec_encode_message
(FlMessageCodec* codec,
118
FlValue
*
message
,
119
GError**
error
);
120
121
/**
122
* fl_message_codec_decode_message:
123
* @codec: an #FlMessageCodec.
124
* @message: binary message to decode.
125
* @error: (allow-none): #GError location to store the error occurring, or
126
* %NULL. If `error` is not %NULL, `*error` must be initialized (typically
127
* %NULL, but an error from a previous call using GLib error handling is
128
* explicitly valid).
129
*
130
* Decodes a message from a binary encoding.
131
*
132
* Returns: an #FlValue or %NULL on error.
133
*/
134
FlValue
*
fl_message_codec_decode_message
(FlMessageCodec* codec,
135
GBytes*
message
,
136
GError**
error
);
137
138
G_END_DECLS
139
140
#endif
// FLUTTER_SHELL_PLATFORM_LINUX_PUBLIC_FLUTTER_LINUX_FL_MESSAGE_CODEC_H_
FL
FL
Definition
fl_binary_messenger.cc:27
FlMessageCodecError
FlMessageCodecError
Definition
fl_message_codec.h:32
FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
@ FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
Definition
fl_message_codec.h:34
FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
@ FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
Definition
fl_message_codec.h:36
FL_MESSAGE_CODEC_ERROR_FAILED
@ FL_MESSAGE_CODEC_ERROR_FAILED
Definition
fl_message_codec.h:33
FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
@ FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
Definition
fl_message_codec.h:35
fl_message_codec_decode_message
FlValue * fl_message_codec_decode_message(FlMessageCodec *codec, GBytes *message, GError **error)
Definition
fl_message_codec.cc:33
fl_message_codec_encode_message
GBytes * fl_message_codec_encode_message(FlMessageCodec *codec, FlValue *message, GError **error)
Definition
fl_message_codec.cc:17
G_DECLARE_DERIVABLE_TYPE
G_MODULE_EXPORT G_DECLARE_DERIVABLE_TYPE(FlMessageCodec, fl_message_codec, FL, MESSAGE_CODEC, GObject) struct _FlMessageCodecClass
Definition
fl_message_codec.h:43
fl_message_codec_error_quark
G_MODULE_EXPORT GQuark fl_message_codec_error_quark(void) G_GNUC_CONST
message
G_BEGIN_DECLS GBytes * message
Definition
fl_mock_binary_messenger.h:24
error
const uint8_t uint32_t uint32_t GError ** error
Definition
fl_pixel_buffer_texture_test.cc:40
fl_value.h
FlValue
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition
fl_value.h:42
shell
platform
linux
public
flutter_linux
fl_message_codec.h
Generated on Mon Dec 1 2025 04:54:28 for Flutter Engine Uber Docs by
1.9.8