Botcraft 1.21.4
Loading...
Searching...
No Matches
BinaryReadWrite.cpp
Go to the documentation of this file.
2
3namespace ProtocolCraft
4{
5 std::string ReadRawString(ReadIterator& iter, size_t& length, const size_t size)
6 {
7 if (length < size)
8 {
9 throw std::runtime_error("Not enough input in ReadRawString");
10 }
11 else
12 {
13 std::string output = std::string(iter, iter + size);
14
15 iter += size;
16 length -= size;
17
18 return output;
19 }
20 }
21
22 void WriteRawString(const std::string& s, WriteContainer& container)
23 {
24 container.insert(container.end(), s.begin(), s.end());
25 }
26
27 std::vector<unsigned char> ReadByteArray(ReadIterator& iter, size_t& length, const size_t desired_length)
28 {
29 if (length < desired_length)
30 {
31 throw std::runtime_error("Not enough input in ReadByteArray");
32 }
33 else
34 {
35 std::vector<unsigned char> output(desired_length);
36 std::copy(iter, iter + desired_length, output.begin());
37
38 iter += desired_length;
39 length -= desired_length;
40
41 return output;
42 }
43 }
44
45 void WriteByteArray(const std::vector<unsigned char>& my_array, WriteContainer& container)
46 {
47 container.insert(container.end(), my_array.begin(), my_array.end());
48 }
49
50 void WriteByteArray(const unsigned char* data, const size_t length, WriteContainer& container)
51 {
52 container.insert(container.end(), data, data + length);
53 }
54} //ProtocolCraft
std::string ReadRawString(ReadIterator &iter, size_t &length, const size_t size)
std::vector< unsigned char > ReadByteArray(ReadIterator &iter, size_t &length, const size_t desired_length)
void WriteRawString(const std::string &s, WriteContainer &container)
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator
void WriteByteArray(const std::vector< unsigned char > &my_array, WriteContainer &container)