#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);
	~CKosFile(void);
	int	Read(Byte *targetPtr, int readCount);
	int Write(Byte *sourcePtr, int writeCount);
	int Seek(int seekFrom, int seekStep);
protected:
	int filePointer;
	int bufferPointer;
	bool validBuffer;
	kosFileInfo fileInfo;
	void ValidateBuffer(void);
	void UpdateBuffer(void);
};