Mineserver
A rewrite of Minecraft 1.8.9 in C++ !
Loading...
Searching...
No Matches
ZLibStream Class Reference

ZLib Stream. More...

#include <stream.h>

Inheritance diagram for ZLibStream:
IMCStream

Public Member Functions

 ZLibStream (IMCStream *baseStream, int level, int threshold)
 Construct a new ZLibStream object.
 
 ~ZLibStream ()
 Destroy the ZLibStream object.
 
void read (std::byte *buffer, std::size_t offset, std::size_t len) override
 Reads from a compressed stream.
 
void write (const std::byte *buffer, std::size_t offset, std::size_t len) override
 Writes to a compressed stream.
 
size_t available () override
 Gets the number of available bytes.
 
void finishPacketWrite (const std::byte *packetData, size_t len) override
 Finishes to write the packet in a Minecrafty way.
 
void flush () override
 Flushes the stream.
 
- Public Member Functions inherited from IMCStream
bool readBoolean ()
 Reads a Boolean.
 
void writeBoolean (bool b)
 Writes a Boolean.
 
std::int8_t readByte ()
 Reads a Byte.
 
void writeByte (std::int8_t b)
 Writes a Byte.
 
std::uint8_t readUnsignedByte ()
 Reads an Unsigned Byte.
 
void writeUnsignedByte (std::uint8_t b)
 Writes an Unsigned Byte.
 
std::int16_t readShort ()
 Reads a Short.
 
void writeShort (std::int16_t s)
 Writes a Short.
 
std::uint16_t readUnsignedShort ()
 Reads an Unsigned Short.
 
void writeUnsignedShort (std::uint16_t s)
 Writes an Unsigned short.
 
std::int32_t readInt ()
 Reads an Integer.
 
void writeInt (std::int32_t i)
 Writes a Integer.
 
std::int64_t readLong ()
 Reads a Long.
 
void writeLong (std::int64_t l)
 Writes a Long.
 
float readFloat ()
 Reads a Float.
 
void writeFloat (float f)
 Writes a Float.
 
double readDouble ()
 Reads a Double.
 
void writeDouble (double d)
 Writes a Double.
 
std::string readString ()
 Reads a String.
 
void writeString (const std::string &s)
 Writes a String.
 
ChatMessage readChat ()
 Reads a Chat Message.
 
void writeChat (const ChatMessage &c)
 Writes a Chat Message.
 
std::int32_t readVarInt ()
 Reads a Variable Integer.
 
void writeVarInt (std::int32_t i)
 Writes a Variable Integer.
 
std::int64_t readVarLong ()
 Reads a Variable Long.
 
void writeVarLong (std::int64_t l)
 Writes a Variable Long.
 
MinecraftUUID readUUID ()
 Reads an MinecraftUUID.
 
void writeUUID (const MinecraftUUID &uuid)
 Writes an MinecraftUUID.
 

Detailed Description

ZLib Stream.

Stream that compresses data according to minecraft standard, writing packet length and data length.

Constructor & Destructor Documentation

◆ ZLibStream()

ZLibStream::ZLibStream ( IMCStream * baseStream,
int level,
int threshold )

Construct a new ZLibStream object.

Parameters
baseStreamthe base stream to IO on, the class takes ownership
levelthe level of compression
thresholdthe threshold before compression

Member Function Documentation

◆ available()

size_t ZLibStream::available ( )
overridevirtual

Gets the number of available bytes.

Returns
size_t the number of available bytes

Implements IMCStream.

◆ finishPacketWrite()

void ZLibStream::finishPacketWrite ( const std::byte * packetData,
size_t len )
overridevirtual

Finishes to write the packet in a Minecrafty way.

Parameters
packetDatathe packet data
lenthe length of the packet data

Implements IMCStream.

◆ flush()

void ZLibStream::flush ( )
overridevirtual

Flushes the stream.

Writes to the base stream any data, following minecraft standard way then flushes the base stream and buffers in any incoming data. It then should be called at the end of every packet loop and is the main reason why we are forced to write one packet per loop.

Implements IMCStream.

◆ read()

void ZLibStream::read ( std::byte * buffer,
std::size_t offset,
std::size_t len )
overridevirtual

Reads from a compressed stream.

Parameters
bufferthe buffer to write to
offsetthe offset to start writing to
lenthe length to read from baseStream and write to buffer

Implements IMCStream.

◆ write()

void ZLibStream::write ( const std::byte * buffer,
std::size_t offset,
std::size_t len )
overridevirtual

Writes to a compressed stream.

Parameters
bufferthe buffer to read from
offsetthe offset to start reading from
lenthe length to read from buffer

Implements IMCStream.


The documentation for this class was generated from the following files: