@ -15,9 +15,9 @@
namespace FileSys {
namespace FileSys {
struct VfsFilesystem ;
class VfsDirectory ;
struct VfsFile ;
class VfsFile ;
struct VfsDirectory ;
class VfsFilesystem ;
// Convenience typedefs to use Vfs* interfaces
// Convenience typedefs to use Vfs* interfaces
using VirtualFilesystem = std : : shared_ptr < VfsFilesystem > ;
using VirtualFilesystem = std : : shared_ptr < VfsFilesystem > ;
@ -34,7 +34,8 @@ enum class VfsEntryType {
// A class representing an abstract filesystem. A default implementation given the root VirtualDir
// A class representing an abstract filesystem. A default implementation given the root VirtualDir
// is provided for convenience, but if the Vfs implementation has any additional state or
// is provided for convenience, but if the Vfs implementation has any additional state or
// functionality, they will need to override.
// functionality, they will need to override.
struct VfsFilesystem : NonCopyable {
class VfsFilesystem : NonCopyable {
public :
VfsFilesystem ( VirtualDir root ) ;
VfsFilesystem ( VirtualDir root ) ;
virtual ~ VfsFilesystem ( ) ;
virtual ~ VfsFilesystem ( ) ;
@ -81,7 +82,8 @@ protected:
} ;
} ;
// A class representing a file in an abstract filesystem.
// A class representing a file in an abstract filesystem.
struct VfsFile : NonCopyable {
class VfsFile : NonCopyable {
public :
virtual ~ VfsFile ( ) ;
virtual ~ VfsFile ( ) ;
// Retrieves the file name.
// Retrieves the file name.
@ -179,7 +181,8 @@ struct VfsFile : NonCopyable {
} ;
} ;
// A class representing a directory in an abstract filesystem.
// A class representing a directory in an abstract filesystem.
struct VfsDirectory : NonCopyable {
class VfsDirectory : NonCopyable {
public :
virtual ~ VfsDirectory ( ) ;
virtual ~ VfsDirectory ( ) ;
// Retrives the file located at path as if the current directory was root. Returns nullptr if
// Retrives the file located at path as if the current directory was root. Returns nullptr if
@ -295,7 +298,8 @@ protected:
// A convenience partial-implementation of VfsDirectory that stubs out methods that should only work
// A convenience partial-implementation of VfsDirectory that stubs out methods that should only work
// if writable. This is to avoid redundant empty methods everywhere.
// if writable. This is to avoid redundant empty methods everywhere.
struct ReadOnlyVfsDirectory : public VfsDirectory {
class ReadOnlyVfsDirectory : public VfsDirectory {
public :
bool IsWritable ( ) const override ;
bool IsWritable ( ) const override ;
bool IsReadable ( ) const override ;
bool IsReadable ( ) const override ;
std : : shared_ptr < VfsDirectory > CreateSubdirectory ( std : : string_view name ) override ;
std : : shared_ptr < VfsDirectory > CreateSubdirectory ( std : : string_view name ) override ;