LeviLamina
Loading...
Searching...
No Matches
BinaryStream.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/network/serialize/serialize.h"
5
6// auto generated inclusion list
7#include "mc/deps/core/utility/ReadOnlyBinaryStream.h"
8#include "mc/deps/core/utility/buffer_span.h"
9#include "mc/platform/brstd/function_ref.h"
10
11class BinaryStream : public ::ReadOnlyBinaryStream {
12public:
13 // BinaryStream inner types declare
14 // clang-format off
15 struct ConditionBlock;
16 // clang-format on
17
18 // BinaryStream inner types define
20 public:
21 // member variables
22 // NOLINTBEGIN
23 bool controlValue;
24 ::brstd::function_ref<void(::BinaryStream&)> writeCondition;
25 char const* docFieldName;
26 // NOLINTEND
27 };
28
29public:
30 template <typename T>
31 inline void writeType(T const& x, char const* = nullptr, char const* = nullptr) {
32 serialize<T>::write(x, *this);
33 }
34
35 MCTAPI void writeType(class BlockPos const&, char const*, char const*);
36 MCTAPI void writeType(class Vec3 const&, char const*, char const*);
37 MCTAPI void writeType(class MoveActorAbsoluteData const&, char const*, char const*);
38 MCTAPI void writeType(class BaseGameVersion const&, char const*, char const*);
39 MCTAPI void writeType(struct ActorLink const&, char const*, char const*);
40 MCTAPI void writeType(struct GameRulesChangedPacketData const&, char const*, char const*);
41
42 BinaryStream() : ReadOnlyBinaryStream({}, true), mBuffer(mOwnedBuffer) {}
43 BinaryStream(std::string& buffer) : ReadOnlyBinaryStream(buffer, false), mBuffer(buffer) {}
44
45public:
46 // member variables
47 // NOLINTBEGIN
48 ::std::string& mBuffer;
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 BinaryStream& operator=(BinaryStream const&);
54 BinaryStream(BinaryStream const&);
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ~BinaryStream() /*override*/ = default;
60
61 virtual void writeBool(bool value, char const* docFieldName, char const*);
62
63 virtual void writeByte(uchar value, char const*, char const*);
64
65 virtual void writeSignedByte(schar value, char const*, char const*);
66
67 virtual void writeUnsignedShort(ushort value, char const*, char const*);
68
69 virtual void writeSignedShort(short value, char const*, char const*);
70
71 virtual void writeUnsignedInt(uint value, char const*, char const*);
72
73 virtual void writeSignedBigEndianInt(int value, char const*, char const*);
74
75 virtual void writeSignedInt(int value, char const*, char const*);
76
77 virtual void writeUnsignedInt64(uint64 value, char const*, char const*);
78
79 virtual void writeSignedInt64(int64 value, char const*, char const*);
80
81 virtual void writeUnsignedVarInt(uint uvalue, char const* docFieldName, char const*);
82
83 virtual void writeUnsignedVarInt64(uint64 uvalue, char const* docFieldName, char const*);
84
85 virtual void writeVarInt(int value, char const* docFieldName, char const*);
86
87 virtual void writeVarInt64(int64 value, char const* docFieldName, char const*);
88
89 virtual void writeDouble(double value, char const*, char const*);
90
91 virtual void writeFloat(float value, char const*, char const*);
92
93 virtual void writeFixedFloat(float value, char const* docFieldName, char const* docFieldNotes, double size);
94
95 virtual void writeNormalizedFloat(float value, char const* docFieldName, char const*);
96
97 virtual void writeString(::std::string_view value, char const*, char const*);
98
99 virtual void writeIf(
100 bool controlValue,
101 char const* writeIfTrue,
102 ::brstd::function_ref<void(::BinaryStream&)> const& writeIfFalse,
103 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
104 );
105
106 virtual void writeConditional(
107 char const* conditions,
108 ::std::initializer_list<::BinaryStream::ConditionBlock>&& writeDefault,
109 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
110 );
111
112 virtual void branchingWrite_DEPRECATED(
113 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
114 int controlValue,
115 int,
116 int,
117 char const*
118 );
119
120 virtual void branchingWrite_DEPRECATED(
121 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
122 int controlValue,
123 ::std::vector<int> const&,
124 char const*
125 );
126
127 virtual bool writeTypeBegin_DocHelper(char const*, char const*, char const*);
128
129 virtual void writeTypeEnd_DocHelper();
130
131 virtual void writeEnum_DocHelper(char const*, char const*);
132
133 virtual void _writeArray(
134 ::std::function<void(::BinaryStream&)>&& sizeWriter,
135 ::std::function<void(::BinaryStream&)>&& writer,
136 char const*,
137 char const*
138 );
139 // NOLINTEND
140
141public:
142 // member functions
143 // NOLINTBEGIN
144#ifdef LL_PLAT_C
145 MCAPI explicit BinaryStream(::std::string&& buffer);
146#endif
147
148 MCAPI BinaryStream(::std::string& buffer, bool copyBuffer);
149
150 MCFOLD void _writeInteger(uchar value, char const* docFieldName, char const*);
151
152 MCAPI void _writeInteger(short value, char const* docFieldName, char const*);
153
154 MCFOLD void _writeInteger(ushort value, char const* docFieldName, char const*);
155
156 MCAPI void _writeInteger(int value, char const* docFieldName, char const*);
157
158 MCAPI void _writeInteger(uint value, char const* docFieldName, char const*);
159
160 MCAPI ::std::string getAndReleaseData();
161
162 MCAPI void reset();
163
164 MCAPI void writeRawBytes(::buffer_span<uchar> bytes, char const*, char const*);
165
166 MCFOLD void writeUnsignedChar(uchar value, char const*, char const*);
167 // NOLINTEND
168
169public:
170 // constructor thunks
171 // NOLINTBEGIN
172 MCAPI void* $ctor();
173
174#ifdef LL_PLAT_C
175 MCAPI void* $ctor(::std::string&& buffer);
176#endif
177
178 MCAPI void* $ctor(::std::string& buffer, bool copyBuffer);
179 // NOLINTEND
180
181public:
182 // virtual function thunks
183 // NOLINTBEGIN
184 MCFOLD void $writeBool(bool value, char const* docFieldName, char const*);
185
186 MCFOLD void $writeByte(uchar value, char const*, char const*);
187
188 MCFOLD void $writeSignedByte(schar value, char const*, char const*);
189
190 MCFOLD void $writeUnsignedShort(ushort value, char const*, char const*);
191
192 MCFOLD void $writeSignedShort(short value, char const*, char const*);
193
194 MCFOLD void $writeUnsignedInt(uint value, char const*, char const*);
195
196 MCAPI void $writeSignedBigEndianInt(int value, char const*, char const*);
197
198 MCFOLD void $writeSignedInt(int value, char const*, char const*);
199
200 MCFOLD void $writeUnsignedInt64(uint64 value, char const*, char const*);
201
202 MCFOLD void $writeSignedInt64(int64 value, char const*, char const*);
203
204 MCAPI void $writeUnsignedVarInt(uint uvalue, char const* docFieldName, char const*);
205
206 MCAPI void $writeUnsignedVarInt64(uint64 uvalue, char const* docFieldName, char const*);
207
208 MCAPI void $writeVarInt(int value, char const* docFieldName, char const*);
209
210 MCAPI void $writeVarInt64(int64 value, char const* docFieldName, char const*);
211
212 MCAPI void $writeDouble(double value, char const*, char const*);
213
214 MCAPI void $writeFloat(float value, char const*, char const*);
215
216 MCAPI void $writeFixedFloat(float value, char const* docFieldName, char const* docFieldNotes, double size);
217
218 MCAPI void $writeNormalizedFloat(float value, char const* docFieldName, char const*);
219
220 MCAPI void $writeString(::std::string_view value, char const*, char const*);
221
222 MCAPI void $writeIf(
223 bool controlValue,
224 char const* writeIfTrue,
225 ::brstd::function_ref<void(::BinaryStream&)> const& writeIfFalse,
226 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
227 );
228
229 MCAPI void $writeConditional(
230 char const* conditions,
231 ::std::initializer_list<::BinaryStream::ConditionBlock>&& writeDefault,
232 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
233 );
234
235 MCFOLD void $branchingWrite_DEPRECATED(
236 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
237 int controlValue,
238 int,
239 int,
240 char const*
241 );
242
243 MCFOLD void $branchingWrite_DEPRECATED(
244 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
245 int controlValue,
246 ::std::vector<int> const&,
247 char const*
248 );
249
250 MCFOLD bool $writeTypeBegin_DocHelper(char const*, char const*, char const*);
251
252 MCFOLD void $writeTypeEnd_DocHelper();
253
254 MCFOLD void $writeEnum_DocHelper(char const*, char const*);
255
256 MCAPI void $_writeArray(
257 ::std::function<void(::BinaryStream&)>&& sizeWriter,
258 ::std::function<void(::BinaryStream&)>&& writer,
259 char const*,
260 char const*
261 );
262
263
264 // NOLINTEND
265
266public:
267 // vftables
268 // NOLINTBEGIN
269 MCNAPI static void** $vftable();
270 // NOLINTEND
271};
Definition BaseGameVersion.h:13
Definition BinaryStream.h:11
static MCAPI void ** $vftable()
Definition BlockPos.h:21
Definition GameRulesChangedPacketData.h:10
Definition MoveActorAbsoluteData.h:16
Definition ReadOnlyBinaryStream.h:8
Definition Vec3.h:10
Definition function_ref.h:60
Definition BinaryStream.h:19