src/proto2/NetworkPacket.hh
author terom
Mon, 10 Nov 2008 18:21:23 +0000
branchno-netsession
changeset 32 2ff929186c90
parent 31 d0d7489d4e8b
child 33 e53f09b378f4
permissions -rw-r--r--
write some mode code...
31
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     1
#ifndef NETWORK_PACKET_HH
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     2
#define NETWORK_PACKET_HH
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     3
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     4
#include "NetworkConfig.hh"
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     5
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     6
class NetworkPacket {
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     7
    private:
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     8
        char buf[NETWORK_PACKET_SIZE];
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
     9
        size_t size, offset;
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    10
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    11
        template <typename T> T read_val (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    12
        template <typename T> void write_val (const T &val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    13
 
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    14
    public:
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    15
        NetworkPacket (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    16
        
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    17
        char* get_buf (void) { return buf; }
32
2ff929186c90 write some mode code...
terom
parents: 31
diff changeset
    18
        size_t get_data_size (void) { return offset; }
2ff929186c90 write some mode code...
terom
parents: 31
diff changeset
    19
        size_t get_buf_size (void) { return size; }
2ff929186c90 write some mode code...
terom
parents: 31
diff changeset
    20
2ff929186c90 write some mode code...
terom
parents: 31
diff changeset
    21
        void set_data_size (size_t size) { offset = size; }
31
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    22
       
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    23
        // type-reads, handle network-endianlness
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    24
        uint32_t read_uint32 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    25
        uint16_t read_uint16 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    26
        uint8_t read_uint8 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    27
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    28
        int32_t read_int32 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    29
        int16_t read_int16 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    30
        int8_t read_int8 (void);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    31
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    32
        void write_uint32 (uint32_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    33
        void write_uint16 (uint16_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    34
        void write_uint8 (uint8_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    35
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    36
        void write_int32 (int32_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    37
        void write_int16 (int16_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    38
        void write_int8 (int8_t val);
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    39
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    40
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    41
};
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    42
d0d7489d4e8b add initial code written so far
terom
parents:
diff changeset
    43
#endif /* NETWORK_PACKET_HH */