/*!
	MIServerToolImplement.h - MIServerToolのインプリメント
*/
#pragma once
#include "IServerTool.h"
#include "04WebServerManagedInterfaces.h"

/*!
	MIServerToolのインプリメント
	基本的に、IServerToolのMIラッパ
*/
class CMIServerToolImplement :
	public MIServerToolImplement
{
public:
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//	初期化
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//!	初期化
	void Start(IServerToolIIPtr serverTool)
	{
		m_serverTool = serverTool;
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//	設定
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//!	マネージャの個別設定を取得
	virtual CWorkspaceAccess GetManagerSetting(CString section)
	{
		return m_serverTool->GetManagerSetting(section);
	}

	//!	フィルタの個別設定を取得
	virtual CWorkspaceAccess GetFilterSetting(CString section)
	{
		return m_serverTool->GetFilterSetting(section);
	}

	//!	レスポンスの個別設定を取得
	virtual CWorkspaceAccess GetResponseSetting(CString section)
	{
		return m_serverTool->GetResponseSetting(section);
	}

	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//	ステータス・ログ
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	//!	サーバログの書き込み
	virtual void WriteSystemLog(CString callerName, int statusCode, CString statusInfo, int autoOffTime = -1)
	{
		return m_serverTool->WriteSystemLog(callerName, statusCode, statusInfo, autoOffTime);
	}

	//!	サーバステータスの変更
	virtual void SetServerStatusInt(CString statusName, int status, CString statusInfo = "")
	{
		return m_serverTool->SetServerStatusInt(statusName, status, statusInfo);
	}

	//!	サーバステータスの変更
	virtual void SetServerStatusStr(CString statusName, CString status, CString statusInfo = "")
	{
		return m_serverTool->SetServerStatusStr(statusName, status, statusInfo);
	}

protected:
	///////////////////////////////////////////////////////////////////
	//	メンバ変数
	///////////////////////////////////////////////////////////////////
	//!	インタフェース
	IServerToolIIPtr		m_serverTool;
};
