Flutter Engine
The Flutter Engine
shell
platform
linux
public
flutter_linux
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
// NOLINTBEGIN(readability-identifier-naming)
34
FL_MESSAGE_CODEC_ERROR_FAILED
,
35
FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
,
36
FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
,
37
FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
,
38
// NOLINTEND(readability-identifier-naming)
39
}
FlMessageCodecError
;
40
41
G_MODULE_EXPORT
42
GQuark
fl_message_codec_error_quark
(
void
) G_GNUC_CONST;
43
44
G_MODULE_EXPORT
45
G_DECLARE_DERIVABLE_TYPE
(FlMessageCodec,
46
fl_message_codec,
47
FL
,
48
MESSAGE_CODEC,
49
GObject)
50
51
/**
52
* FlMessageCodec:
53
*
54
* #FlMessageCodec is a message encoding/decoding mechanism that operates on
55
* #FlValue objects. Both operations returns errors if the conversion fails.
56
* Such situations should be treated as programming errors.
57
*
58
* #FlMessageCodec matches the MethodCodec class in the Flutter services
59
* library.
60
*/
61
62
struct
_FlMessageCodecClass {
63
GObjectClass parent_class;
64
65
/**
66
* FlMessageCodec::encode_message:
67
* @codec: an #FlMessageCodec.
68
* @message: message to encode or %NULL to encode the null value.
69
* @error: (allow-none): #GError location to store the error occurring, or
70
* %NULL.
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.
88
*
89
* Virtual method to decode a message. A subclass must implement this method.
90
* If @message is too small then a #FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA error
91
* must be generated. If @message is too large then a
92
* #FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA error must be generated.
93
*
94
* Returns: an #FlValue or %NULL on error.
95
*/
96
FlValue
* (*decode_message)(FlMessageCodec* codec,
97
GBytes*
message
,
98
GError**
error
);
99
};
100
101
/**
102
* fl_message_codec_encode_message:
103
* @codec: an #FlMessageCodec.
104
* @buffer: buffer to write to.
105
* @message: message to encode or %NULL to encode the null value.
106
* @error: (allow-none): #GError location to store the error occurring, or
107
* %NULL.
108
*
109
* Encodes a message into a binary representation.
110
*
111
* Returns: a binary encoded message or %NULL on error.
112
*/
113
GBytes*
fl_message_codec_encode_message
(FlMessageCodec* codec,
114
FlValue
*
message
,
115
GError**
error
);
116
117
/**
118
* fl_message_codec_decode_message:
119
* @codec: an #FlMessageCodec.
120
* @message: binary message to decode.
121
* @error: (allow-none): #GError location to store the error occurring, or
122
* %NULL.
123
*
124
* Decodes a message from a binary encoding.
125
*
126
* Returns: an #FlValue or %NULL on error.
127
*/
128
FlValue
*
fl_message_codec_decode_message
(FlMessageCodec* codec,
129
GBytes*
message
,
130
GError**
error
);
131
132
G_END_DECLS
133
134
#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:35
FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
@ FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
Definition:
fl_message_codec.h:37
FL_MESSAGE_CODEC_ERROR_FAILED
@ FL_MESSAGE_CODEC_ERROR_FAILED
Definition:
fl_message_codec.h:34
FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
@ FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
Definition:
fl_message_codec.h:36
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:45
fl_message_codec_error_quark
G_MODULE_EXPORT GQuark fl_message_codec_error_quark(void) G_GNUC_CONST
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
message
Win32Message message
Definition:
keyboard_unittests.cc:139
Generated on Sun Jun 23 2024 21:55:17 for Flutter Engine by
1.9.4