src/proto2/NetworkServer.hh
author terom
Wed, 05 Nov 2008 22:29:31 +0000
changeset 14 22e3bfb6720d
parent 6 faa4e777cc6e
child 21 32c6cc55256a
permissions -rw-r--r--
NetworkServer.cc finally works as intended
#ifndef NETWORKSERVER_HH
#define NETWORKSERVER_HH

#include "Network.hh"
#include "GameState.hh"

#include <list>
#include <map>
#include <ClanLib/core.h>

// forward-declare
class NetworkServerClient;

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

		std::map<CL_IPAddress, NetworkServerClient> client_sockets;

		CL_EventListener listener;
		
		CL_Slot slot_on_recv;

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

	public:
		static NetworkServer *newServer (void);

		void run (void);

	private:
		void _onRecv (void);
};

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

void runNetworkServer (void);

#endif