
/*!
 	@file
 	@brief フレームワークベースクラス
 */

#ifndef CApplication_h
#define CApplication_h


#include"../Setup/CompileMode.h"
#include"../Auxiliary/Macro.h"

namespace Maid
{
	/*!
	 	@class	IApplication CApplication.h
	 	@brief	フレームワークベースクラス
	\n			このクラスから各ＯＳごとに必要な機能を実装したクラスが作られます
	\n			実際にはそれからさらに継承してアプリケーションの実装をします 
	 */ 
	class IApplication
	{
	public:
		virtual ~IApplication(){}		//!<	デストラクタ

		/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
		//! アプリが生きているか？
		/*!
			@retval	true  生きている
			@retval	false 終了する必要がある
		 */
		virtual bool IsValid()=0;


		/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
		//! アプリケーションを終了させる
		/*!
			アプリを終了させるときに呼んでください
		 */
		virtual void ApplicationExit()=0;
	};

}
#endif
