src/proto2/NetworkPacket.hh
branchno-netsession
changeset 31 d0d7489d4e8b
child 32 2ff929186c90
equal deleted inserted replaced
30:0e6f454ecf0e 31:d0d7489d4e8b
       
     1 #ifndef NETWORK_PACKET_HH
       
     2 #define NETWORK_PACKET_HH
       
     3 
       
     4 #include "NetworkConfig.hh"
       
     5 
       
     6 class NetworkPacket {
       
     7     private:
       
     8         char buf[NETWORK_PACKET_SIZE];
       
     9         size_t size, offset;
       
    10 
       
    11         template <typename T> T read_val (void);
       
    12         template <typename T> void write_val (const T &val);
       
    13  
       
    14     public:
       
    15         NetworkPacket (void);
       
    16         
       
    17         char* get_buf (void) { return buf; }
       
    18         size_t get_size (void) { return size; }
       
    19        
       
    20         // type-reads, handle network-endianlness
       
    21         uint32_t read_uint32 (void);
       
    22         uint16_t read_uint16 (void);
       
    23         uint8_t read_uint8 (void);
       
    24 
       
    25         int32_t read_int32 (void);
       
    26         int16_t read_int16 (void);
       
    27         int8_t read_int8 (void);
       
    28 
       
    29         void write_uint32 (uint32_t val);
       
    30         void write_uint16 (uint16_t val);
       
    31         void write_uint8 (uint8_t val);
       
    32 
       
    33         void write_int32 (int32_t val);
       
    34         void write_int16 (int16_t val);
       
    35         void write_int8 (int8_t val);
       
    36 
       
    37 
       
    38 };
       
    39 
       
    40 #endif /* NETWORK_PACKET_HH */