#pragma once
#include "NewConnectionQueue.h"
#include "IServerTool.h"
#include "InterfaceTemplate.h"


/*!
	リスナのベース
*/
class IListener
{
public:
	virtual ~IListener(void) {}

	/////////////////////////////////////////////////////////////////////////////////////
	//	操作
	/////////////////////////////////////////////////////////////////////////////////////
	//!	開始
	virtual void Start(IServerToolPtr serverTool, IClientConnectionQueuePtr queue) = 0;

	//!	停止
	virtual void Stop() = 0;

	//!	停止準備
	virtual void ShutdownListen() = 0;
};

//!	インターフェース定義
DEFINE_INTERFACE(IListener);

