-
Notifications
You must be signed in to change notification settings - Fork 0
/
NetworkClient.h
48 lines (37 loc) · 1.3 KB
/
NetworkClient.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _NETWORK_CLIENT_H_
#define _NETWORK_CLIENT_H_
#include <MAUtil/Vector.h>
#include <MAUtil/Connection.h>
class NetworkClientListener
{
public:
virtual void connectionEstablished(int yourId) = 0;
virtual void competitorConnected(int id) = 0;
virtual void startLoadingGame(int seed) = 0;
virtual void startGame() = 0;
virtual void playerPositionUpdate(int id, float velocity, float steer) = 0;
};
class NetworkClient : public MAUtil::ConnectionListener
{
public:
NetworkClient();
virtual ~NetworkClient() {}
void addListener(NetworkClientListener *listener);
bool connect(const char* addr);
void requestGameStart();
void sendPositionUpdate(float velocity, float steer);
private:
virtual void connectFinished(MAUtil::Connection* conn, int result);
virtual void connRecvFinished(MAUtil::Connection* conn, int result);
virtual void connWriteFinished(MAUtil::Connection* conn, int result);
virtual void connReadFinished(MAUtil::Connection* conn, int result);
void fireConnectionEstablished(int yourId);
void fireCompetitorConnected(int id);
void fireStartLoadingGame(int seed);
void fireStartGame();
void firePlayerPositionUpdate(int id, float velocity, float steer);
MAUtil::Vector<NetworkClientListener*> mListeners;
MAUtil::Connection* mConnection;
int mId;
};
#endif // _NETWORK_CLIENT_H_