src/proto2/NetworkServer.hh
author terom
Mon, 03 Nov 2008 22:59:50 +0000
changeset 5 617813994ab1
child 6 faa4e777cc6e
permissions -rw-r--r--
move proto/p2 -> src/proto2
#ifndef NETWORKSERVER_HH
#define NETWORKSERVER_HH

#include <list>

#define NETWORK_SERVER_BACKLOG 8

class NetworkServer : public NetworkBase {
	private:
		GameState *state;

		std::map<CL_IPAddress, NetworkServerClient> client_sockets;

		CL_EventListener listener;
		
		CL_Slot slot_on_accept;

		NetworkServer (GameState *state, const CL_IPAddress &listen_ip);

	public:
		static NetworkServer *newServer (void);

		void run (void);

	private:
		void _onAccept (void);
};

class NetworkServerClient {
	private:
		NetworkServer &server;
		
	private:
		NetworkServerClient (NetworkServer &server);
};

void runNetworkServer (void);

#endif