rendered paste body#include "stdafx.h"
#include <string>
class BasePacket
{
private:
char *_buffer;
int _size;
int offset;
public:
BasePacket(char *buffer,int size):_buffer(buffer),_size(size),offset(0)
{
}
void run() {}
char readByte()
{
return _buffer[offset++];
}
short readShort()
{
short value;
memcpy(&value,_buffer[offset],sizeof(short));
offset += sizeof(short);
return value;
}
int readInt()
{
int value;
memcpy(&value,_buffer[offset],sizeof(int));
offset += sizeof(int);
return value;
}
long readLong()
{
long value;
memcpy(&value,_buffer[offset],sizeof(long));
offset += sizeof(long);
return value;
}
long readFloat()
{
float value;
memcpy(&value,_buffer[offset],sizeof(float));
offset += sizeof(float);
return value;
}
long readDouble()
{
double value;
memcpy(&value,_buffer[offset],sizeof(double));
offset += sizeof(double);
return value;
}
string &readString()
{
string result;
while (_buffer[offset] != 0)
{
result.append(_buffer[offset++]);
}
}
void getBuffer(char *buffer,int size)
{
memcpy(buffer,_buffer,size);
}
};