write some mode code...
#ifndef NETWORK_PACKET_HH
#define NETWORK_PACKET_HH
#include "NetworkConfig.hh"
class NetworkPacket {
private:
char buf[NETWORK_PACKET_SIZE];
size_t size, offset;
template <typename T> T read_val (void);
template <typename T> void write_val (const T &val);
public:
NetworkPacket (void);
char* get_buf (void) { return buf; }
size_t get_data_size (void) { return offset; }
size_t get_buf_size (void) { return size; }
void set_data_size (size_t size) { offset = size; }
// type-reads, handle network-endianlness
uint32_t read_uint32 (void);
uint16_t read_uint16 (void);
uint8_t read_uint8 (void);
int32_t read_int32 (void);
int16_t read_int16 (void);
int8_t read_int8 (void);
void write_uint32 (uint32_t val);
void write_uint16 (uint16_t val);
void write_uint8 (uint8_t val);
void write_int32 (int32_t val);
void write_int16 (int16_t val);
void write_int8 (int8_t val);
};
#endif /* NETWORK_PACKET_HH */