
//==============================================================
//! @file       CAllKeysState.h
//! @brief      CAllKeysStateクラスの宣言
//! @date       2014年 1月26日
//! @author     regubukk
//! 
//! ************************************************************
//! @par  History
//!           - 2014年 1月26日 初回作成日
//!           - 2014年 2月 1日 ドキュメンテーションコメント追加
//==============================================================

#ifndef __CALLKEYSSTATE_H__
#define __CALLKEYSSTATE_H__

#include "..\CommonIncludes.h"

//==============================================================
//! @class
//!     CAllKeysState
//! @brief
//!     ハードなシングルトンパターン。
//! 
//==============================================================

class CAllKeysState
{
public:
	//! @brief
	//!     プログラムの実行中に、一度しかインスタンスを生成できない。
	//!     deleteした後に、newしても落ちるので注意
	CAllKeysState( void );
	virtual ~CAllKeysState( void );
	
	void Record( void );


	bool IsKeyPushed( const int );
	bool IsKeyHold( const int );

private:
	//! キー情報格納用変数。1フレームごとに加算
	int m_aiAllKeysState[ 256 ];
	
	//! 一時格納用配列。
	char m_achTempKeysState[ 256 ];

	//! コピーや生成をできないようにする。
	CAllKeysState( const CAllKeysState& rhs );
	CAllKeysState& operator=( const CAllKeysState& rhs );
	
};

#endif
