Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PacketReader PacketReader::getFromCompressedPacket(const ByteBuffer& buf)
- {
- PacketReader reader(buf);
- std::size_t len = static_cast<std::size_t>(reader.readVarInt());
- ByteBuffer buffer = compressor::decompressZlib(ByteBuffer(reader.data.begin() + reader.offset, reader.data.end()));
- if (len != buffer.size()) throw std::runtime_error("Uncompressed length is not equal with the one specified");
- return PacketReader(std::move(buffer));
- }
- void PacketWriter::commit(bool compressed)
- {
- if (compressed)
- {
- ByteBuffer comp = compressor::compressZlib(data);
- PacketWriter wr;
- wr.writeVarInt(data.size());
- data.clear();
- writeVarInt(wr.data.size() + comp.size());
- data += wr.data;
- data += comp;
- }
- else
- {
- ByteBuffer d(std::move(data));
- writeVarInt(d.size());
- data.append(d.data(), d.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment