1
0
cuberite-2a/source/packets/cPacket.h
madmaxoft@gmail.com d3614be2e0 Removed a few duplicate includes
git-svn-id: http://mc-server.googlecode.com/svn/trunk@215 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-01 12:46:44 +00:00

59 lines
2.3 KiB
C++

#pragma once
#include "../cSocket.h"
#include "../PacketID.h"
class cSocket;
class cPacket
{
public:
cPacket()
: m_PacketID( 0 )
{}
virtual ~cPacket() {}
virtual bool Parse( cSocket & a_Socket) { a_Socket=0; printf("ERROR: Undefined NEW Parse function %x\n", m_PacketID ); return false; }
virtual bool Send( cSocket & a_Socket) { a_Socket=0; printf("ERROR: Undefined NEW Send function %x\n", m_PacketID ); return false; }
virtual cPacket* Clone() const = 0;
unsigned char m_PacketID;
cSocket m_Socket; // Current socket being used
protected:
bool ReadString ( std::string & a_OutString );
bool ReadString16( std::string & a_OutString );
bool ReadShort ( short & a_Short );
bool ReadInteger(int & a_OutInteger );
bool ReadInteger(unsigned int & a_OutInteger );
bool ReadFloat ( float & a_OutFloat );
bool ReadDouble ( double & a_OutDouble );
bool ReadByte ( char & a_OutByte );
bool ReadByte ( unsigned char & a_OutByte );
bool ReadLong ( long long & a_OutLong );
bool ReadBool ( bool & a_OutBool );
void AppendString ( std::string & a_String, char* a_Dst, unsigned int & a_Iterator );
void AppendString16 ( std::string & a_String, char* a_Dst, unsigned int & a_Iterator );
void AppendShort ( short a_Short, char* a_Dst, unsigned int & a_Iterator );
void AppendShort ( unsigned short a_Short, char* a_Dst, unsigned int & a_Iterator );
void AppendInteger ( int a_Integer, char* a_Dst, unsigned int & a_Iterator );
void AppendInteger ( unsigned int a_Integer, char* a_Dst, unsigned int & a_Iterator );
void AppendFloat ( float a_Float, char* a_Dst, unsigned int & a_Iterator );
void AppendDouble ( double & a_Double, char* a_Dst, unsigned int & a_Iterator );
void AppendByte ( char a_Byte, char* a_Dst, unsigned int & a_Iterator );
void AppendLong ( long long & a_Long, char* a_Dst, unsigned int & a_Iterator );
void AppendBool ( bool a_Bool, char* a_Dst, unsigned int & a_Iterator );
void AppendData ( char* a_Data, unsigned int a_Size, char* a_Dst, unsigned int & a_Iterator );
public:
static int SendData( cSocket & a_Socket, const char* a_Message, unsigned int a_Size, int a_Options );
static int RecvAll( cSocket & a_Socket, char* a_Data, unsigned int a_Size, int a_Options );
};