Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/FICN/src/network/PacketManager.h @ 440

Last change on this file since 440 was 440, checked in by scheusso, 16 years ago

added dummyserver3.cc (implements a chatserver, including main)

File size: 2.1 KB
Line 
1#ifndef PACKETMANAGER_H_
2#define PACKETMANAGER_H_
3
4#include <string>
5#include <enet/enet.h>
6#include "PacketTypes.h"
7
8#define CLIENTID_CLIENT -1
9
10//enum netowk generaly used to set the type ID of a packet
11namespace network{
12 
13 
14
15
16
17/*
18 * class to generate packets
19 *
20 * @autor: Dumeni Manatschal
21 *
22*/ 
23class PacketGenerator
24{
25public:
26        PacketGenerator();
27        //call one of this functions out of an instance of PacketGenerator to create a packet
28        ENetPacket* acknowledgement( int state, int reliable = ENET_PACKET_FLAG_RELIABLE );
29        ENetPacket* mousem( double x, double y, int reliable = ENET_PACKET_FLAG_RELIABLE );
30        ENetPacket* keystrike( char press, int reliable = ENET_PACKET_FLAG_RELIABLE );
31  ENetPacket* chatMessage( const char* message, int reliable = ENET_PACKET_FLAG_RELIABLE );
32  ENetPacket* gstate( GameStateCompressed *states, int reliable = ENET_PACKET_FLAG_RELIABLE );
33  ENetPacket* clid( int classid, std::string classname, int reliable = ENET_PACKET_FLAG_RELIABLE );
34private:
35};
36
37/*
38 * class used to decode incoming packets
39 *
40 * @autor: Dumeni Manatschal
41 *
42*/
43class PacketDecoder
44{
45public:
46        PacketDecoder();
47        //call this function to decode, it calls the right decoding function below
48        bool elaborate( ENetPacket* packet, int clientId );
49       
50private:
51       
52       
53       
54  void acknowledgement( ENetPacket* packet, int clientId = CLIENTID_CLIENT );
55  void mousem( ENetPacket* packet, int clientId = CLIENTID_CLIENT );
56  void keystrike( ENetPacket* packet, int clientId = CLIENTID_CLIENT );
57  void chatMessage( ENetPacket* packet, int clientId = CLIENTID_CLIENT);
58  void gstate( ENetPacket* packet );
59  void clid( ENetPacket *packet);
60       
61  //process data
62  //two functions are note yet implemented!
63  //virtual void processGamestate(GameState *state);
64  virtual void processChat( chat *data, int clientId);
65  virtual void processClassid( classid *cid);
66  //virtual void processAck( ack *data);
67 
68        //print functions
69        void printAck( ack* data );
70        void printMouse( mouse* data );
71        void printKey( keyboard* data );
72        void printChat( chat* data, int clientId );
73        void printGamestate( GameStateCompressed *data );
74  void printClassid( classid *cid);
75};
76}
77
78#endif /*PACKETMANAGER_H_*/
Note: See TracBrowser for help on using the repository browser.