#include "stdafx.h" #include 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); } };