xTachyon

Untitled

Jan 11th, 2017
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.87 KB | None | 0 0
  1. PacketReader PacketReader::getFromCompressedPacket(const ByteBuffer& buf)
  2. {
  3.   PacketReader reader(buf);
  4.  
  5.   std::size_t len = static_cast<std::size_t>(reader.readVarInt());
  6.   ByteBuffer buffer = compressor::decompressZlib(ByteBuffer(reader.data.begin() + reader.offset, reader.data.end()));
  7.   if (len != buffer.size()) throw std::runtime_error("Uncompressed length is not equal with the one specified");
  8.  
  9.   return PacketReader(std::move(buffer));
  10. }
  11.  
  12. void PacketWriter::commit(bool compressed)
  13. {
  14.   if (compressed)
  15.   {
  16.     ByteBuffer comp = compressor::compressZlib(data);
  17.     PacketWriter wr;
  18.     wr.writeVarInt(data.size());
  19.    
  20.     data.clear();
  21.     writeVarInt(wr.data.size() + comp.size());
  22.     data += wr.data;
  23.     data += comp;
  24.   }
  25.   else
  26.   {
  27.     ByteBuffer d(std::move(data));
  28.  
  29.     writeVarInt(d.size());
  30.     data.append(d.data(), d.size());
  31.   }
  32. }
Advertisement
Add Comment
Please, Sign In to add comment