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