/*!
	SimpleManagerInterfaceImplement.h
*/
#pragma once
#include "imanagerinterface.h"

class CSimpleManagerInterfaceImplement :
	public IManagerInterface
{
public:
	//!	コンストラクタ
	CSimpleManagerInterfaceImplement(void)
	{
		m_ifPtr = NULL;
		m_ifVer = 1;
	}

	//!	デストラクタ
	virtual ~CSimpleManagerInterfaceImplement(void)
	{
		m_ifPtr = NULL;
		m_ifVer = 1;
	}

	//!	初期化
	virtual void Init(void *ifPtr, int ifVer)
	{
		m_ifPtr = ifPtr;
		m_ifVer = ifVer;
	}

	//!	インタフェース取得
	IManagerInterfacePtr GetIManagerInterface()
	{
		return this;
	}

	///////////////////////////////////////////////////////////////////////////////////////////
	//	IManagerInterface
	///////////////////////////////////////////////////////////////////////////////////////////
	//!	インタフェース取得
	virtual void *GetInterface(int ifVersion)
	{
		if(ifVersion != m_ifVer)
			return(NULL);
		return(m_ifPtr);
	};

	//!	オーバーロード通知
	virtual void NotifyOverload() {};

protected:
	//!	インタフェース
	void *m_ifPtr;

	//!	インタフェースバージョン
	int	m_ifVer;
};
