2013-06-30 10:46:29 +02:00
|
|
|
#pragma once
|
2014-02-16 16:19:06 +01:00
|
|
|
#include "vfsStream.h"
|
2013-06-30 10:46:29 +02:00
|
|
|
|
2014-02-16 16:19:06 +01:00
|
|
|
enum vfsOpenMode
|
|
|
|
|
{
|
|
|
|
|
vfsRead = 0x1,
|
|
|
|
|
vfsWrite = 0x2,
|
|
|
|
|
vfsExcl = 0x4,
|
|
|
|
|
vfsAppend = 0x8,
|
|
|
|
|
vfsReadWrite = vfsRead | vfsWrite,
|
|
|
|
|
vfsWriteExcl = vfsWrite | vfsExcl,
|
|
|
|
|
vfsWriteAppend = vfsWrite | vfsAppend,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class vfsDevice;
|
|
|
|
|
|
|
|
|
|
struct vfsFileBase : public vfsStream
|
2013-06-30 10:46:29 +02:00
|
|
|
{
|
|
|
|
|
protected:
|
2014-04-01 02:33:55 +02:00
|
|
|
std::string m_path;
|
2013-06-30 10:46:29 +02:00
|
|
|
vfsOpenMode m_mode;
|
2014-02-16 16:19:06 +01:00
|
|
|
vfsDevice* m_device;
|
2013-06-30 10:46:29 +02:00
|
|
|
|
|
|
|
|
public:
|
2014-02-16 16:19:06 +01:00
|
|
|
vfsFileBase(vfsDevice* device);
|
2013-06-30 10:46:29 +02:00
|
|
|
virtual ~vfsFileBase();
|
|
|
|
|
|
2014-04-01 02:33:55 +02:00
|
|
|
virtual bool Open(const std::string& path, vfsOpenMode mode);
|
2013-09-24 23:11:29 +02:00
|
|
|
virtual bool Close() override;
|
2014-04-01 02:33:55 +02:00
|
|
|
virtual bool Create(const std::string& path) { return false; }
|
|
|
|
|
virtual bool Exists(const std::string& path) { return false; }
|
|
|
|
|
virtual bool Rename(const std::string& from, const std::string& to) { return false; }
|
|
|
|
|
virtual bool Remove(const std::string& path) { return false; }
|
2014-02-16 16:19:06 +01:00
|
|
|
|
2014-04-01 02:33:55 +02:00
|
|
|
std::string GetPath() const;
|
2013-06-30 10:46:29 +02:00
|
|
|
vfsOpenMode GetOpenMode() const;
|
2013-08-03 11:40:03 +02:00
|
|
|
};
|