1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-29 22:35:45 +00:00
Aquaria/ExternalLibs/ttvfs/VFSLoader.h
2014-04-06 19:19:33 +02:00

42 lines
915 B
C++

// VFSLoader.h - late loading of files not in the tree
// For conditions of distribution and use, see copyright notice in VFS.h
#ifndef VFSLOADER_H
#define VFSLOADER_H
#include <cstddef>
#include "VFSDefines.h"
#include "VFSRefcounted.h"
VFS_NAMESPACE_START
class File;
class Dir;
// VFSLoader - to be called if a file is not in the tree.
class VFSLoader : public Refcounted
{
public:
VFSLoader();
virtual ~VFSLoader() {}
virtual File *Load(const char *fn, const char *unmangled) = 0;
virtual Dir *LoadDir(const char *fn, const char *unmangled) { return NULL; }
inline Dir *getRoot() const { return root; }
protected:
Dir *root;
};
class DiskLoader : public VFSLoader
{
public:
DiskLoader();
virtual ~DiskLoader() {}
virtual File *Load(const char *fn, const char *unmangled);
virtual Dir *LoadDir(const char *fn, const char *unmangled);
};
VFS_NAMESPACE_END
#endif