52 lines
935 B
C++
52 lines
935 B
C++
#ifndef IFILE_H__
|
|||
|
|
#define IFILE_H__
|
||
|
|
|
||
|
|
#include "../IDataStream.h"
|
||
|
|
#include "../LString.h"
|
||
|
|
#include "IContentProvider.h"
|
||
|
|
#include "../Types.h"
|
||
|
|
#include "../delegate/Delegate.h"
|
||
|
|
namespace LifeCore
|
||
|
|
{
|
||
|
|
enum FILE_ACCESS
|
||
|
|
{
|
||
|
|
FA_READ = 1,
|
||
|
|
FA_WRITE = 2,
|
||
|
|
FA_READ_WRITE = 3
|
||
|
|
};
|
||
|
|
|
||
|
|
enum FILE_MODE
|
||
|
|
{
|
||
|
|
FM_CREATE_NEW = 1,
|
||
|
|
FM_CREATE = 2,
|
||
|
|
FM_OPEN = 3,
|
||
|
|
FM_OPEN_OR_CREATE = 4,
|
||
|
|
FM_TRUNCATE = 5,
|
||
|
|
FM_APPEND = 6,
|
||
|
|
};
|
||
|
|
|
||
|
|
class IFile
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
EVENT1(FileEvent, LifeCore::IFile*);
|
||
|
|
FileEvent Event_EndReadAsync;
|
||
|
|
|
||
|
|
int Size;
|
||
|
|
IContentProvider* Provider;
|
||
|
|
String FileName;
|
||
|
|
virtual ~IFile(){}
|
||
|
|
virtual bool ReadAsync(char* buffer, size_t count_read)
|
||
|
|
{
|
||
|
|
UNREFERENCED_PARAMETER(buffer);
|
||
|
|
UNREFERENCED_PARAMETER(count_read);
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
virtual IDataStreamPtr OpenRead() = 0;
|
||
|
|
virtual IDataStreamPtr OpenWrite(int mode) = 0;
|
||
|
|
virtual IDataStreamPtr OpenReadWrite(int mode) = 0;
|
||
|
|
protected:
|
||
|
|
_bool isOpen;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|