/*!
 	@file 
 	@brief	メモリ上においてあるデータをファイルとして扱うクラス
 
 */

#ifndef CFileReadMemory_h
#define CFileReadMemory_h


#include"../../Setup/CompileMode.h"
#include"CFileReadInterface.h"

#include<boost/smart_ptr.hpp>

namespace Maid
{
	class CFileReadMemory : public IFileRead
	{
	public:
		CFileReadMemory();
		virtual ~CFileReadMemory();

				void Open( const boost::shared_array<unt08>& pBegin, int Size );
				void OpenNoOwner( const void* pBegin, int Size );
		virtual int	 Read ( void* pData, int Size );
		virtual int	 GetSize()    const;
		virtual int	 GetPosition()const;

		virtual void Seek( int Size, IFileRead::POSITION ePos );

		virtual void Close();

	private:
		boost::shared_array<unt08> m_pShared;
		int		m_Size;
		int		m_Position;
		unt08*	m_pBegin;
	};

}


#endif
