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