#pragma once
#include "IServerTool.h"
#include "IClientConnection.h"

/*!
	通信インタフェースキュー
*/
class IClientConnectionQueue
{
public:
	//!	追加
	virtual int AddNewConnection(IClientConnectionPtr newConnection) = 0;
};
//!	ポインタ型
typedef IClientConnectionQueue* IClientConnectionQueuePtr;


/*!
	リスナのベース
*/
class IListener
{
public:
	/////////////////////////////////////////////////////////////////////////////////////
	//	操作
	/////////////////////////////////////////////////////////////////////////////////////
	//!	開始
	virtual void Start(IServerToolPtr serverTool, IClientConnectionQueuePtr queue) = 0;

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

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

	//!	削除
	virtual void Delete() = 0;
};
//!	ポインタ型
typedef IListener* IListenerPtr;

