#pragma once #define SEEK_SET 0 #define SEEK_CUR 1 #define FILE_BUFFER_SIZE 512 #define OS_BLOCK_SIZE 1 #define FILE_BUFFER_BLOCKS (FILE_BUFFER_SIZE / OS_BLOCK_SIZE) class CKosFile { public: CKosFile(char *fileName); virtual ~CKosFile(void); virtual int Read(Byte *targetPtr, int readCount); virtual int Write(Byte *sourcePtr, int writeCount); virtual int Seek(int seekFrom, int seekStep); protected: int filePointer; int bufferPointer; bool validBuffer; kosFileInfo fileInfo; virtual void ValidateBuffer(void); virtual void UpdateBuffer(void); };