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

class IPathManager
{
public:
	///////////////////////////////////////////////////////////////////////////////////////////
	//	インターフェース
	///////////////////////////////////////////////////////////////////////////////////////////
	//!	パスを検索
	virtual int FindPath(LPCSTR path, LPCSTR host, IWorkspaceAccessPtr pathInfo) = 0;

	//!	パス数を取得
	virtual int GetPathCount() = 0;

	//!	インデックスからパスを取得
	virtual int GetPathByIndex(int index, IWorkspaceAccessPtr pathInfo) = 0;
};
//!	ポインタ型
typedef IPathManager* IPathManagerPtr;


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

	///////////////////////////////////////////////////////////////////////////////////////////
	//	インターフェース
	///////////////////////////////////////////////////////////////////////////////////////////
	//!	パスを検索
	virtual int FindPath(CString path, CString host, CPathInfo pathInfo)
	{
		return(m_ifPtr->FindPath(path, host, CWorkspaceAccess(pathInfo).GetIWorkspaceAccess()));
	}

	//!	パス数を取得
	virtual int GetPathCount()
	{
		return(m_ifPtr->GetPathCount());
	}

	//!	インデックスからパスを取得
	virtual int GetPathByIndex(int index, CPathInfo pathInfo)
	{
		return(m_ifPtr->GetPathByIndex(index, CWorkspaceAccess(pathInfo).GetIWorkspaceAccess()));
	}
};

