/*!
 	@file
 	@brief	ファイルにたいして書き込みのみのクラス
 
 */

#ifndef CFileWrite_h
#define CFileWrite_h

#include"../../Setup/CompileMode.h"
#include"../Macro.h"
#include"../mstring.h"
#include<stdio.h>

namespace Maid
{
	class CFileWrite
	{
	public:
		CFileWrite();
		~CFileWrite();

		enum OPENOPTION
		{
			OPENOPTION_NEW,	//!<	ファイルサイズを０にして作成
			OPENOPTION_ADD,	//!<	追加書き込み（ファイルが存在しないときは新規に作る）
		};

		void	Open( const mstring& FileName, OPENOPTION eOption );
		int		Write( const void* pData, int DataSize );
		void	Close();

		enum POSITION
		{
			POSITION_BEGIN,		//!<	ファイルの先頭から
			POSITION_END,		//!<	ファイルの終端から
			POSITION_CURRENT,	//!<	現在の位置から
		};
		
		void	Seek( int Size, POSITION ePos );
		static int	Write( const mstring& FileName, const void* pData, int Size );
		static void	Create( const mstring& FileName );

	private:
		FILE*	m_Handle;	//!<	ファイルハンドル
	};
}

#endif
