#pragma once
#include "InterfaceWrapperMacro.h"
#include "ServerInfo.h"

/*!
	サーバ情報マネージャのインタフェース
*/
class IServerInfoManager
{
public:
	//!	サーバ情報を取得
	virtual void GetServerInfo(IWorkspaceAccessRefPtr serverInfoRef) = 0;
};
//!	ポインタ型
typedef IServerInfoManager* IServerInfoManagerPtr;



/*!
	IServerInfoManagerラッパ
*/
class CIServerInfoManagerWrap
{
public:
	//!	色々宣言
	DEFINE_MANAGER_WRAPPER_CONSTRUCTOR(CIServerInfoManagerWrap, IServerInfoManager, 1);

	/*!
		サーバ情報を取得

		取得されるのは、サーバ情報への一時的なアクセス
	*/
	virtual CServerInfo GetServerInfo()
	{
		CWorkspaceAccess	ret;
		m_ifPtr->GetServerInfo(ret.GetIWorkspaceAccessRef());
		return ret;
	}
};
