dcdd144598 2011-02-23 kinaba: #ifndef _KILIB_FILE_H_ dcdd144598 2011-02-23 kinaba: #define _KILIB_FILE_H_ dcdd144598 2011-02-23 kinaba: #include "types.h" dcdd144598 2011-02-23 kinaba: #include "memory.h" dcdd144598 2011-02-23 kinaba: #ifndef __ccdoc__ dcdd144598 2011-02-23 kinaba: namespace ki { dcdd144598 2011-02-23 kinaba: #endif dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: //@{ @pkg ki.StdLib //@} dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // �ȈՃt�@�C���Ǎ� dcdd144598 2011-02-23 kinaba: // dcdd144598 2011-02-23 kinaba: // �t�@�C���}�b�s���O��p����̂ŁA�������ȒP�ł��ƍ����ł��B dcdd144598 2011-02-23 kinaba: // ���������������ƂɁA4GB�܂ł����J���܂���B dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: class FileR : public Object dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: FileR(); dcdd144598 2011-02-23 kinaba: ~FileR(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // �J�� dcdd144598 2011-02-23 kinaba: // @param fname �t�@�C���� dcdd144598 2011-02-23 kinaba: // @return �J�������ǂ��� dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: bool Open( const TCHAR* fname ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // ���� dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: void Close(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ �t�@�C���T�C�Y //@} dcdd144598 2011-02-23 kinaba: ulong size() const; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ �t�@�C�����e���}�b�v�����A�h���X�擾 //@} dcdd144598 2011-02-23 kinaba: const uchar* base() const; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: HANDLE handle_; dcdd144598 2011-02-23 kinaba: HANDLE fmo_; dcdd144598 2011-02-23 kinaba: ulong size_; dcdd144598 2011-02-23 kinaba: const void* basePtr_; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: NOCOPY(FileR); dcdd144598 2011-02-23 kinaba: }; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //------------------------------------------------------------------------- dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline ulong FileR::size() const dcdd144598 2011-02-23 kinaba: { return size_; } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: inline const uchar* FileR::base() const dcdd144598 2011-02-23 kinaba: { return static_cast<const uchar*>(basePtr_); } dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: //@{ dcdd144598 2011-02-23 kinaba: // �ȈՃt�@�C���������� dcdd144598 2011-02-23 kinaba: // dcdd144598 2011-02-23 kinaba: // �Ă��Ɓ[�Ƀo�b�t�@�����O���B dcdd144598 2011-02-23 kinaba: //@} dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: class FileW : public Object dcdd144598 2011-02-23 kinaba: { dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: FileW(); dcdd144598 2011-02-23 kinaba: ~FileW(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ �J�� //@} dcdd144598 2011-02-23 kinaba: bool Open( const TCHAR* fname, bool creat=true ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ ���� //@} dcdd144598 2011-02-23 kinaba: void Close(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ ���� //@} dcdd144598 2011-02-23 kinaba: void Write( const void* buf, ulong siz ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //@{ �ꕶ������ //@} dcdd144598 2011-02-23 kinaba: void WriteC( uchar ch ); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: public: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: void Flush(); dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: const int BUFSIZE; dcdd144598 2011-02-23 kinaba: HANDLE handle_; dcdd144598 2011-02-23 kinaba: uchar* const buf_; dcdd144598 2011-02-23 kinaba: ulong bPos_; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: private: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: NOCOPY(FileW); dcdd144598 2011-02-23 kinaba: }; dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: //========================================================================= dcdd144598 2011-02-23 kinaba: dcdd144598 2011-02-23 kinaba: } // namespace ki dcdd144598 2011-02-23 kinaba: #endif // _KILIB_FILE_H_