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(class GameRulesChangedPacketData const&, char const*, char const*);
41
42 BinaryStream() : ReadOnlyBinaryStream({}, true), mBuffer(mOwnedBuffer) {}
43 BinaryStream(std::string& buffer) : ReadOnlyBinaryStream(buffer, false), mBuffer(buffer) {}
44
45 void write(char const* origin, uint64 num) {
46 mBuffer.append(origin, num);
47 mView = mBuffer;
48 }
49
50public:
51 // member variables
52 // NOLINTBEGIN
53 ::std::string& mBuffer;
54 // NOLINTEND
55
56public:
57 // prevent constructor by default
58 BinaryStream& operator=(BinaryStream const&);
59 BinaryStream(BinaryStream const&);
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~BinaryStream() /*override*/ = default;
65
66 virtual void writeBool(bool value, char const* docFieldName, char const*);
67
68 virtual void writeByte(uchar value, char const*, char const*);
69
70 virtual void writeSignedByte(schar value, char const*, char const*);
71
72 virtual void writeUnsignedShort(ushort value, char const*, char const*);
73
74 virtual void writeSignedShort(short value, char const*, char const*);
75
76 virtual void writeUnsignedInt(uint value, char const*, char const*);
77
78 virtual void writeSignedBigEndianInt(int value, char const*, char const*);
79
80 virtual void writeSignedInt(int value, char const*, char const*);
81
82 virtual void writeUnsignedInt64(uint64 value, char const*, char const*);
83
84 virtual void writeSignedInt64(int64 value, char const*, char const*);
85
86 virtual void writeUnsignedVarInt(uint uvalue, char const* docFieldName, char const*);
87
88 virtual void writeUnsignedVarInt64(uint64 uvalue, char const* docFieldName, char const*);
89
90 virtual void writeVarInt(int value, char const* docFieldName, char const*);
91
92 virtual void writeVarInt64(int64 value, char const* docFieldName, char const*);
93
94 virtual void writeDouble(double value, char const*, char const*);
95
96 virtual void writeFloat(float value, char const*, char const*);
97
98 virtual void writeFixedFloat(float value, char const* docFieldName, char const* docFieldNotes, double size);
99
100 virtual void writeNormalizedFloat(float value, char const* docFieldName, char const*);
101
102 virtual void writeString(::std::string_view value, char const*, char const*);
103
104 virtual void writeIf(
105 bool controlValue,
106 char const* writeIfTrue,
107 ::brstd::function_ref<void(::BinaryStream&)> const& writeIfFalse,
108 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
109 );
110
111 virtual void writeConditional(
112 char const* conditions,
113 ::std::initializer_list<::BinaryStream::ConditionBlock>&& writeDefault,
114 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
115 );
116
117 virtual void branchingWrite_DEPRECATED(
118 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
119 int controlValue,
120 int,
121 int,
122 char const*
123 );
124
125 virtual void branchingWrite_DEPRECATED(
126 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
127 int controlValue,
128 ::std::vector<int> const&,
129 char const*
130 );
131
132 virtual bool writeTypeBegin_DocHelper(char const*, char const*, char const*);
133
134 virtual void writeTypeEnd_DocHelper();
135
136 virtual void writeEnum_DocHelper(char const*, char const*);
137
138 virtual void _writeArray(
139 ::std::function<void(::BinaryStream&)>&& sizeWriter,
140 ::std::function<void(::BinaryStream&)>&& writer,
141 char const*,
142 char const*
143 );
144 // NOLINTEND
145
146public:
147 // member functions
148 // NOLINTBEGIN
149#ifdef LL_PLAT_C
150 MCAPI explicit BinaryStream(::std::string&& buffer);
151#endif
152
153 MCAPI BinaryStream(::std::string& buffer, bool copyBuffer);
154
155 MCFOLD void _writeInteger(uchar value, char const* docFieldName, char const*);
156
157 MCAPI void _writeInteger(short value, char const* docFieldName, char const*);
158
159 MCFOLD void _writeInteger(ushort value, char const* docFieldName, char const*);
160
161 MCAPI void _writeInteger(int value, char const* docFieldName, char const*);
162
163 MCAPI void _writeInteger(uint value, char const* docFieldName, char const*);
164
165 MCAPI ::std::string getAndReleaseData();
166
167 MCAPI void reset();
168
169 MCAPI void writeRawBytes(::buffer_span<uchar> bytes, char const*, char const*);
170
171 MCFOLD void writeUnsignedChar(uchar value, char const*, char const*);
172 // NOLINTEND
173
174public:
175 // constructor thunks
176 // NOLINTBEGIN
177 MCAPI void* $ctor();
178
179#ifdef LL_PLAT_C
180 MCAPI void* $ctor(::std::string&& buffer);
181#endif
182
183 MCAPI void* $ctor(::std::string& buffer, bool copyBuffer);
184 // NOLINTEND
185
186public:
187 // virtual function thunks
188 // NOLINTBEGIN
189 MCFOLD void $writeBool(bool value, char const* docFieldName, char const*);
190
191 MCFOLD void $writeByte(uchar value, char const*, char const*);
192
193 MCFOLD void $writeSignedByte(schar value, char const*, char const*);
194
195 MCFOLD void $writeUnsignedShort(ushort value, char const*, char const*);
196
197 MCFOLD void $writeSignedShort(short value, char const*, char const*);
198
199 MCFOLD void $writeUnsignedInt(uint value, char const*, char const*);
200
201 MCAPI void $writeSignedBigEndianInt(int value, char const*, char const*);
202
203 MCFOLD void $writeSignedInt(int value, char const*, char const*);
204
205 MCFOLD void $writeUnsignedInt64(uint64 value, char const*, char const*);
206
207 MCFOLD void $writeSignedInt64(int64 value, char const*, char const*);
208
209 MCAPI void $writeUnsignedVarInt(uint uvalue, char const* docFieldName, char const*);
210
211 MCAPI void $writeUnsignedVarInt64(uint64 uvalue, char const* docFieldName, char const*);
212
213 MCAPI void $writeVarInt(int value, char const* docFieldName, char const*);
214
215 MCAPI void $writeVarInt64(int64 value, char const* docFieldName, char const*);
216
217 MCAPI void $writeDouble(double value, char const*, char const*);
218
219 MCAPI void $writeFloat(float value, char const*, char const*);
220
221 MCAPI void $writeFixedFloat(float value, char const* docFieldName, char const* docFieldNotes, double size);
222
223 MCAPI void $writeNormalizedFloat(float value, char const* docFieldName, char const*);
224
225 MCAPI void $writeString(::std::string_view value, char const*, char const*);
226
227 MCAPI void $writeIf(
228 bool controlValue,
229 char const* writeIfTrue,
230 ::brstd::function_ref<void(::BinaryStream&)> const& writeIfFalse,
231 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
232 );
233
234 MCAPI void $writeConditional(
235 char const* conditions,
236 ::std::initializer_list<::BinaryStream::ConditionBlock>&& writeDefault,
237 ::std::optional<::brstd::function_ref<void(::BinaryStream&)>> const&
238 );
239
240 MCFOLD void $branchingWrite_DEPRECATED(
241 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
242 int controlValue,
243 int,
244 int,
245 char const*
246 );
247
248 MCFOLD void $branchingWrite_DEPRECATED(
249 ::std::function<void(::BinaryStream&, int)>&& branchWriter,
250 int controlValue,
251 ::std::vector<int> const&,
252 char const*
253 );
254
255 MCFOLD bool $writeTypeBegin_DocHelper(char const*, char const*, char const*);
256
257 MCFOLD void $writeTypeEnd_DocHelper();
258
259 MCFOLD void $writeEnum_DocHelper(char const*, char const*);
260
261 MCAPI void $_writeArray(
262 ::std::function<void(::BinaryStream&)>&& sizeWriter,
263 ::std::function<void(::BinaryStream&)>&& writer,
264 char const*,
265 char const*
266 );
267
268
269 // NOLINTEND
270
271public:
272 // vftables
273 // NOLINTBEGIN
274 MCNAPI static void** $vftable();
275 // NOLINTEND
276};
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