Flutter Linux Embedder
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_FL_MESSAGE_CODEC_H_
6
#define FLUTTER_SHELL_PLATFORM_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
GQuark
fl_message_codec_error_quark
(
void
) G_GNUC_CONST;
40
41
G_MODULE_EXPORT
42
G_DECLARE_DERIVABLE_TYPE
(FlMessageCodec,
43
fl_message_codec,
44
FL
,
45
MESSAGE_CODEC,
46
GObject)
47
48
/**
49
* FlMessageCodec:
50
*
51
* #FlMessageCodec is a message encoding/decoding mechanism that operates on
52
* #FlValue objects. Both operations returns errors if the conversion fails.
53
* Such situations should be treated as programming errors.
54
*
55
* #FlMessageCodec matches the MethodCodec class in the Flutter services
56
* library.
57
*/
58
59
struct
_FlMessageCodecClass {
60
GObjectClass parent_class;
61
62
/**
63
* FlMessageCodec::encode_message:
64
* @codec: A #FlMessageCodec.
65
* @message: message to encode or %NULL to encode the null value.
66
* @error: (allow-none): #GError location to store the error occurring, or
67
* %NULL.
68
*
69
* Virtual method to encode a message. A subclass must implement this method.
70
* If the subclass cannot handle the type of @message then it must generate a
71
* FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE error.
72
*
73
* Returns: a binary message or %NULL on error.
74
*/
75
GBytes* (*encode_message)(FlMessageCodec* codec,
76
FlValue
* message,
77
GError**
error
);
78
79
/**
80
* FlMessageCodec::decode_message:
81
* @codec: an #FlMessageCodec.
82
* @message: binary message to decode.
83
* @error: (allow-none): #GError location to store the error occurring, or
84
* %NULL.
85
*
86
* Virtual method to decode a message. A subclass must implement this method.
87
* If @message is too small then a #FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA error
88
* must be generated. If @message is too large then a
89
* #FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA error must be generated.
90
*
91
* Returns: an #FlValue or %NULL on error.
92
*/
93
FlValue
* (*decode_message)(FlMessageCodec* codec,
94
GBytes* message,
95
GError**
error
);
96
};
97
98
/**
99
* fl_message_codec_encode_message:
100
* @codec: an #FlMessageCodec.
101
* @buffer: buffer to write to.
102
* @message: message to encode or %NULL to encode the null value.
103
* @error: (allow-none): #GError location to store the error occurring, or
104
* %NULL.
105
*
106
* Encodes a message into a binary representation.
107
*
108
* Returns: a binary encoded message or %NULL on error.
109
*/
110
GBytes*
fl_message_codec_encode_message
(FlMessageCodec* codec,
111
FlValue
* message,
112
GError**
error
);
113
114
/**
115
* fl_message_codec_decode_message:
116
* @codec: an #FlMessageCodec.
117
* @message: binary message to decode.
118
* @error: (allow-none): #GError location to store the error occurring, or
119
* %NULL.
120
*
121
* Decodes a message from a binary encoding.
122
*
123
* Returns: an #FlValue or %NULL on error.
124
*/
125
FlValue
*
fl_message_codec_decode_message
(FlMessageCodec* codec,
126
GBytes* message,
127
GError**
error
);
128
129
G_END_DECLS
130
131
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_MESSAGE_CODEC_H_
FlMessageCodecError
FlMessageCodecError
Definition:
fl_message_codec.h:32
FlValue
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition:
fl_value.h:40
FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
@ FL_MESSAGE_CODEC_ERROR_ADDITIONAL_DATA
Definition:
fl_message_codec.h:35
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:42
FL_MESSAGE_CODEC_ERROR_FAILED
@ FL_MESSAGE_CODEC_ERROR_FAILED
Definition:
fl_message_codec.h:33
FL
FL
Definition:
fl_binary_messenger.cc:27
fl_message_codec_encode_message
GBytes * fl_message_codec_encode_message(FlMessageCodec *codec, FlValue *message, GError **error)
Definition:
fl_message_codec.cc:17
FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
@ FL_MESSAGE_CODEC_ERROR_OUT_OF_DATA
Definition:
fl_message_codec.h:34
fl_value.h
error
const uint8_t uint32_t uint32_t GError ** error
Definition:
fl_pixel_buffer_texture_test.cc:40
FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
@ FL_MESSAGE_CODEC_ERROR_UNSUPPORTED_TYPE
Definition:
fl_message_codec.h:36
fl_message_codec_error_quark
GQuark fl_message_codec_error_quark(void) G_GNUC_CONST
fl_message_codec_decode_message
FlValue * fl_message_codec_decode_message(FlMessageCodec *codec, GBytes *message, GError **error)
Definition:
fl_message_codec.cc:33
shell
platform
linux
public
flutter_linux
fl_message_codec.h
Generated by
1.8.17