[Mona] 2004年大晦日にやっていた作業内容

ぼんやりとファイルシステムのインターフェースを考えていた。
まだ具体的な実装(FAT・ISO9660)とのすり合わせも何もしていないのでいろいろとまずいでしょう。

class FileSystem
{
public:
    virtual File* Open(const char* path, int mode)      = 0;
    virtual bool CreateDirectory(const char* directory) = 0;
    virtual bool RemoveDirectory(const char* directory) = 0;
    virtual bool CreateFile(const char* path)           = 0;
    virtual bool RemoveFile(const char* file)           = 0;
    virtual int GetLastError() const {return lastError;}

protected:
    int lastError;
};

class ReadOnlyFileSystem : public FileSystem
{
public:
    virtual bool CreateDirectory(const char* directory) {this->lastError = FS_READ_ONLY_ERROR; return false;}
    virtual bool RemoveDirectory(const char* directory) {this->lastError = FS_READ_ONLY_ERROR; return false;}
    virtual bool CreateFile(const char* path)           {this->lastError = FS_READ_ONLY_ERROR; return false;}
    virtual bool RemoveFile(const char* file)           {this->lastError = FS_READ_ONLY_ERROR; return false;}
};