VOX
A little voxel engine
Loading...
Searching...
No Matches
ChunkPacket Class Reference

#include <ChunkPacket.hpp>

Inheritance diagram for ChunkPacket:
Inheritance graph
Collaboration diagram for ChunkPacket:
Collaboration graph

Classes

struct  ChunkData
 

Public Member Functions

 ChunkPacket ()
 
 ChunkPacket (const Chunk &chunk)
 
 ~ChunkPacket ()
 
 ChunkPacket (ChunkPacket &other)
 
ChunkPacketoperator= (ChunkPacket &other)
 
 ChunkPacket (ChunkPacket &&other)
 
ChunkPacketoperator= (ChunkPacket &&other)
 
void Serialize (uint8_t *buffer) const override
 will write the packet in the buffer, the buffer must at least be of size Size() More...
 
void Deserialize (const uint8_t *buffer) override
 read the packet from the buffer, the buffer must at least be of size Size() More...
 
uint32_t Size () const override
 return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer More...
 
bool HasDynamicSize () const override
 Tell if the packet has a dynamic size. More...
 
IPacket::Type GetType () const override
 Get the Type of the packet. More...
 
std::shared_ptr< IPacketClone () const override
 Create a new instance of the packet. More...
 
std::shared_ptr< ChunkGetChunk () const
 
void SetChunk (const Chunk &chunk)
 
- Public Member Functions inherited from IPacket
virtual ~IPacket ()
 
 IPacket (const IPacket &)
 
IPacketoperator= (const IPacket &)
 
 IPacket (IPacket &&)
 
IPacketoperator= (IPacket &&)
 
virtual void Serialize (uint8_t *buffer) const =0
 will write the packet in the buffer, the buffer must at least be of size Size() More...
 
void ExtractMessage (Connection &connection)
 Extracts the implemented packet from the connection. More...
 
virtual uint32_t Size () const =0
 return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer More...
 
virtual bool HasDynamicSize () const =0
 Tell if the packet has a dynamic size. More...
 
virtual enum Type GetType () const =0
 Get the Type of the packet. More...
 
virtual std::shared_ptr< IPacketClone () const =0
 Create a new instance of the packet. More...
 
uint64_t GetConnectionId () const
 Get the Connection Id ( eg source of the packet or destination if it's a response) More...
 
void SetConnectionId (uint64_t connection_id)
 Set the Connection Id ( eg source of the packet or destination if it's a response) More...
 

Additional Inherited Members

- Public Types inherited from IPacket
enum class  Type : uint32_t {
  CONNECTION , PLAYER_CONNECTED , PLAYER_MOVE , DISCONNECT ,
  BLOCK_ACTION , PING , PLAYER_LIST , CHUNK ,
  CHUNK_REQUEST , CHUNK_UNLOAD , LOAD_DISTANCE , ENUM_MAX ,
  ENUM_MIN = 0
}
 
- Static Public Attributes inherited from IPacket
static const uint32_t STATIC_HEADER_SIZE = sizeof(Type)
 
static const uint32_t DYNAMIC_HEADER_SIZE = sizeof(Type) + sizeof(size_t)
 
- Protected Member Functions inherited from IPacket
virtual void Deserialize (const uint8_t *buffer)=0
 read the packet from the buffer, the buffer must at least be of size Size() More...
 
size_t SerializeHeader (uint8_t *buffer) const
 util function to serialize the header of the packet will serialize the type and the size of the packet if it has a dynamic size More...
 
 IPacket ()
 
- Protected Attributes inherited from IPacket
uint64_t m_connection_id = 0
 

Constructor & Destructor Documentation

◆ ChunkPacket() [1/4]

ChunkPacket::ChunkPacket ( )

◆ ChunkPacket() [2/4]

ChunkPacket::ChunkPacket ( const Chunk chunk)

◆ ~ChunkPacket()

ChunkPacket::~ChunkPacket ( )

◆ ChunkPacket() [3/4]

ChunkPacket::ChunkPacket ( ChunkPacket other)

◆ ChunkPacket() [4/4]

ChunkPacket::ChunkPacket ( ChunkPacket &&  other)

Member Function Documentation

◆ Clone()

std::shared_ptr< IPacket > ChunkPacket::Clone ( ) const
overridevirtual

Create a new instance of the packet.

Returns
std::shared_ptr<IPacket>

Implements IPacket.

◆ Deserialize()

void ChunkPacket::Deserialize ( const uint8_t *  buffer)
overridevirtual

read the packet from the buffer, the buffer must at least be of size Size()

Note
this is protected because the method the user should call is ExtractMessage
Parameters
buffer

Implements IPacket.

◆ GetChunk()

std::shared_ptr< Chunk > ChunkPacket::GetChunk ( ) const

◆ GetType()

IPacket::Type ChunkPacket::GetType ( ) const
overridevirtual

Get the Type of the packet.

Returns
enum Type

Implements IPacket.

◆ HasDynamicSize()

bool ChunkPacket::HasDynamicSize ( ) const
overridevirtual

Tell if the packet has a dynamic size.

Returns
true
false

Implements IPacket.

◆ operator=() [1/2]

ChunkPacket & ChunkPacket::operator= ( ChunkPacket &&  other)

◆ operator=() [2/2]

ChunkPacket & ChunkPacket::operator= ( ChunkPacket other)

◆ Serialize()

void ChunkPacket::Serialize ( uint8_t *  buffer) const
overridevirtual

will write the packet in the buffer, the buffer must at least be of size Size()

Parameters
buffer

Implements IPacket.

◆ SetChunk()

void ChunkPacket::SetChunk ( const Chunk chunk)

◆ Size()

uint32_t ChunkPacket::Size ( ) const
overridevirtual

return the size of the packet in bytes, usually used to reserve the right amount of memory in the send buffer

or to check if a connection contains a complete packet

Warning
if the packet has a dynamic size YOU CANNOT call this method to check if the packet is complete, you MUST read the size from the packet header.

However you can still use it on an instance of a packet that has some data in it to estimate the size of the packet

Returns
uint32_t

Implements IPacket.


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