#pragma once
#include "../global.h"
#include <set>
class CConnection;
namespace boost
{
	namespace asio
	{
		class io_service;
		namespace ip
		{
			class tcp;
		}
		template <typename Protocol> class socket_acceptor_service;
		template <typename Protocol,typename SocketAcceptorService>
		class basic_socket_acceptor;
	}
};

class CVCMIServer
{
	boost::asio::io_service *io;
	boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > * acceptor;
	std::map<int,CConnection*> connections;
	std::set<CConnection*> conns;
public:
	CVCMIServer();
	~CVCMIServer();
	void setUpConnection(CConnection *c, std::string mapname, si32 checksum);
	void newGame(CConnection *c);
	void start();
};