Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/network/src/network/PacketManager.h @ 199

Last change on this file since 199 was 199, checked in by dumenim, 16 years ago

Packet Decoder/Generator und PacketManager, generates and decodes packets send and receved by enet

File size: 1.4 KB
Line 
1#ifndef PACKETMANAGER_H_
2#define PACKETMANAGER_H_
3
4#include <enet/enet.h>
5
6namespace network
7{
8enum packet_id {
9        ACK,
10        MOUSE,
11        KEYBOARD,
12        CHAT
13};
14
15class PacketGenerator
16{
17public:
18        PacketGenerator();
19        ENetPacket* acknowledgement( int state, int reliable = ENET_PACKET_FLAG_RELIABLE );
20        ENetPacket* mousem( double x, double y, int reliable = ENET_PACKET_FLAG_RELIABLE );
21        ENetPacket* keystrike( char press, int reliable = ENET_PACKET_FLAG_RELIABLE );
22        ENetPacket* chatMessage( const char* message, int reliable = ENET_PACKET_FLAG_RELIABLE );
23private:
24        struct ack {
25                int id;
26                int a;
27        };
28
29        struct mouse {
30                int id;
31                double x;
32                double y;
33        };
34
35        struct keyboard {
36                int id;
37                char press;
38        };     
39        struct chat {
40                int id;
41                const char* message;
42        };
43};
44
45class PacketDecoder
46{
47public:
48        PacketDecoder();
49        bool elaborate( ENetEvent* event );
50private:
51        struct ack {
52                int id;
53                int a;
54        };
55
56        struct mouse {
57                int id;
58                double x;
59                double y;
60        };
61
62        struct keyboard {
63                int id;
64                char press;
65        };
66        struct chat {
67                int id;
68                const char* message;
69        };
70       
71        void acknowledgement( ENetPacket* event );
72        void mousem( ENetPacket* event );
73        void keystrike( ENetPacket* event );
74        void chatMessage( ENetPacket* event );
75       
76        //print functions
77        void printAck( ack* data );
78        void printMouse( mouse* data );
79        void printKey( keyboard* data );
80        void printChat( chat* data );
81        void printPeer( ENetPeer* peer );
82};
83}
84
85#endif /*PACKETMANAGER_H_*/
Note: See TracBrowser for help on using the repository browser.