src/proto2/NetworkServer.hh
changeset 22 b70d30e1b0fe
parent 21 32c6cc55256a
child 23 8d802b573cf0
equal deleted inserted replaced
21:32c6cc55256a 22:b70d30e1b0fe
     7 #include <list>
     7 #include <list>
     8 #include <map>
     8 #include <map>
     9 #include <ClanLib/core.h>
     9 #include <ClanLib/core.h>
    10 
    10 
    11 // forward-declare
    11 // forward-declare
    12 class NetworkServerClient;
    12 class NetworkServerPlayer;
    13 
    13 
    14 class NetworkServer : public NetworkCore {
    14 class NetworkServer : public NetworkCore {
       
    15 	friend class NetworkServerPlayer;
       
    16 
       
    17 	private:
       
    18 		uint16_t pid_pool;
       
    19 	
       
    20 	public:
       
    21 		std::map<CL_NetComputer, NetworkServerPlayer*> players;
       
    22 
    15 	public:
    23 	public:
    16 		NetworkServer (GameState &state, const std::string &listen_port);
    24 		NetworkServer (GameState &state, const std::string &listen_port);
    17 
    25 
    18 	private:
    26 	private:
    19 		void on_connect (CL_NetComputer &computer);
    27 		void on_connect (CL_NetComputer &computer);
    20 		void on_disconnect (CL_NetComputer &computer);
    28 		void on_disconnect (CL_NetComputer &computer);
       
    29 
       
    30 	
    21 };
    31 };
    22 
    32 
    23 class NetworkServerClient {
    33 class NetworkServerPlayer : public RemotePlayer {
    24 	private:
    34 	private:
    25 		NetworkServer &server;
    35 		NetworkServer &server;
       
    36 		CL_NetComputer &computer;
       
    37 		CL_NetObject_Server netobj;
       
    38 
       
    39 		CL_SlotContainer slots;
       
    40 
       
    41 		uint16_t pid;
    26 		
    42 		
       
    43 	public:
       
    44 		NetworkServerPlayer (NetworkServer &server, CL_NetComputer &computer, uint16_t pid);
       
    45 
       
    46 		void disconnected (void);
       
    47 
    27 	private:
    48 	private:
    28 		NetworkServerClient (NetworkServer &server);
    49 		void on_move (CL_NetComputer &from, CL_NetPacket &pkt);
       
    50 
       
    51 		void send_position_update (void);
    29 };
    52 };
    30 
    53 
    31 #endif
    54 #endif