Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

PacketDecoder takes a packet as argument and not an event

File size: 1.3 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};
40
41class PacketDecoder
42{
43public:
44        PacketDecoder();
45        bool elaborate( ENetPacket* packet, int clientId );
46private:
47        struct ack {
48                int id;
49                int a;
50        };
51
52        struct mouse {
53                int id;
54                double x;
55                double y;
56        };
57
58        struct keyboard {
59                int id;
60                char press;
61        };
62        struct chat {
63                int id;
64                const char* message;
65        };
66       
67        void acknowledgement( ENetPacket* packet );
68        void mousem( ENetPacket* packet );
69        void keystrike( ENetPacket* packet );
70        void chatMessage( ENetPacket* packet );
71       
72        //print functions
73        void printAck( ack* data );
74        void printMouse( mouse* data );
75        void printKey( keyboard* data );
76        void printChat( chat* data );
77        void printPeer( ENetPeer* peer );
78};
79}
80
81#endif /*PACKETMANAGER_H_*/
Note: See TracBrowser for help on using the repository browser.