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