#include "StdAfx.h"
#include "ServerTextManager.h"
#include "htmlloader.h"
#include "Dir.h"
#include "resource.h"

CServerTextManager::CServerTextManager(void)
{
}

CServerTextManager::~CServerTextManager(void)
{
	Stop();
}


///////////////////////////////////////////////////////////////////////////////////////////////////
//	操作
///////////////////////////////////////////////////////////////////////////////////////////////////
/*!
	開始
*/
void CServerTextManager::Start(CIServerToolWrap serverTool)
{
	//	初期化済み？
	if(m_init)
		return;
	m_init = TRUE;

	//	コピー、初期化
	m_serverTool = serverTool;

	//	設定取得
	m_setting = m_serverTool.GetManagerSetting(m_setting.GetSettingName());

	//	インタフェース初期化
	m_managerInterface.Init((IServerTextManagerPtr)this, CIServerTextManagerWrap::GetInterfaceVersion());

	//	インターフェース登録
	m_serverTool.RegisterManagerInterface(CIServerTextManagerWrap::GetInterfaceName(), m_managerInterface.GetIManagerInterface());
}

/*!
	停止
*/
void CServerTextManager::Stop()
{
	//	初期化チェック
	if(!m_init)
		return;
	m_init = FALSE;

	//	インターフェース登録解除
	m_serverTool.UnRegisterManagerInterface(CIServerTextManagerWrap::GetInterfaceName(), m_managerInterface.GetIManagerInterface());
}


///////////////////////////////////////////////////////////////////////////////////////////////////
//	IServerTextManager
///////////////////////////////////////////////////////////////////////////////////////////////////
/*!
	サーバHTMLをロードする
*/
void CServerTextManager::LoadServerHtmlFile(IStringPtr html, LPCSTR name)
{
	//	ロード
	html->SetString(CHtmlLoader::LoadFromFile(CPathTools::AddBackSlash(m_setting.GetServerHtmlDirectory()) + name));
}

/*!
	サーバHTMLをロードする(リソースから)
*/
void CServerTextManager::LoadServerHtmlResource(IStringPtr html, LPCSTR resName)
{
	CHtmlLoader	loader;

	if(resName == HTML_RESOURCE_SERVER_RESPONSE)
		html->SetString(CHtmlLoader::LoadFromResource(IDR_HTML_SERVER_RESPONSE));
	else if(resName == HTML_RESOURCE_DIRECTORY_LIST)
		html->SetString(CHtmlLoader::LoadFromResource(IDR_HTML_DIRECTORY_INDEX));
	else
		html->SetString("");
}


