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