OpenEnroth 5e3ef65
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SubFileSystem Class Reference

#include <SubFileSystem.h>

Inheritance diagram for SubFileSystem:
FileSystem

Public Member Functions

 SubFileSystem (FileSystemPathView basePath, FileSystem *base)
 
 SubFileSystem (std::string_view basePath, FileSystem *base)
 
- Public Member Functions inherited from FileSystem
 FileSystem ()=default
 
virtual ~FileSystem ()=default
 
bool exists (std::string_view path) const
 
bool exists (FileSystemPathView path) const
 
FileStat stat (std::string_view path) const
 
FileStat stat (FileSystemPathView path) const
 
std::vector< DirectoryEntryls (std::string_view path) const
 
std::vector< DirectoryEntryls (FileSystemPathView path) const
 
void ls (std::string_view path, std::vector< DirectoryEntry > *entries) const
 
void ls (FileSystemPathView path, std::vector< DirectoryEntry > *entries) const
 
Blob read (std::string_view path) const
 
Blob read (FileSystemPathView path) const
 
void write (std::string_view path, const Blob &data)
 
void write (FileSystemPathView path, const Blob &data)
 
std::unique_ptr< InputStreamopenForReading (std::string_view path) const
 
std::unique_ptr< InputStreamopenForReading (FileSystemPathView path) const
 
std::unique_ptr< OutputStreamopenForWriting (std::string_view path)
 
std::unique_ptr< OutputStreamopenForWriting (FileSystemPathView path)
 
void rename (std::string_view srcPath, std::string_view dstPath)
 
void rename (FileSystemPathView srcPath, FileSystemPathView dstPath)
 
bool remove (std::string_view path)
 
bool remove (FileSystemPathView path)
 
std::string displayPath (std::string_view path) const
 
std::string displayPath (FileSystemPathView path) const
 

Protected Member Functions

virtual bool _exists (FileSystemPathView path) const override
 
virtual FileStat _stat (FileSystemPathView path) const override
 
virtual void _ls (FileSystemPathView path, std::vector< DirectoryEntry > *entries) const override
 
virtual Blob _read (FileSystemPathView path) const override
 
virtual void _write (FileSystemPathView path, const Blob &data) override
 
virtual std::unique_ptr< InputStream_openForReading (FileSystemPathView path) const override
 
virtual std::unique_ptr< OutputStream_openForWriting (FileSystemPathView path) override
 
virtual void _rename (FileSystemPathView srcPath, FileSystemPathView dstPath) override
 
virtual bool _remove (FileSystemPathView path) override
 
virtual std::string _displayPath (FileSystemPathView path) const override
 
virtual bool _exists (FileSystemPathView path) const =0
 
virtual FileStat _stat (FileSystemPathView path) const =0
 
virtual void _ls (FileSystemPathView path, std::vector< DirectoryEntry > *entries) const =0
 
virtual Blob _read (FileSystemPathView path) const =0
 
virtual void _write (FileSystemPathView path, const Blob &data)=0
 
virtual std::unique_ptr< InputStream_openForReading (FileSystemPathView path) const =0
 
virtual std::unique_ptr< OutputStream_openForWriting (FileSystemPathView path)=0
 
virtual void _rename (FileSystemPathView srcPath, FileSystemPathView dstPath)
 
virtual bool _remove (FileSystemPathView path)=0
 
virtual std::string _displayPath (FileSystemPathView path) const =0
 

Private Attributes

FileSystem_base
 
FileSystemPath _basePath
 

Additional Inherited Members

- Protected Types inherited from FileSystem
template<class T >
using FileSystemTrieNode = detail::FileSystemTrieNode< T >
 
template<class T >
using FileSystemTrie = detail::FileSystemTrie< T >
 

Detailed Description

File system that provides a view into a subdirectory of another file system.

All paths are prefixed with the base path. This provides isolation - files outside the base path cannot be accessed.

Usage:

FileSystem *root = ...;
SubFileSystem shaders(root, "shaders/");
shaders.read("precision.vert"); // reads root/shaders/precision.vert
Definition: FileSystem.h:72
Definition: SubFileSystem.h:23

Constructor & Destructor Documentation

◆ SubFileSystem() [1/2]

SubFileSystem::SubFileSystem ( FileSystemPathView  basePath,
FileSystem base 
)
Parameters
basePathPath prefix to apply to all operations.
baseThe underlying file system.

◆ SubFileSystem() [2/2]

SubFileSystem::SubFileSystem ( std::string_view  basePath,
FileSystem base 
)

Member Function Documentation

◆ _displayPath()

std::string SubFileSystem::_displayPath ( FileSystemPathView  path) const
overrideprotectedvirtual

Implements FileSystem.

◆ _exists()

bool SubFileSystem::_exists ( FileSystemPathView  path) const
overrideprotectedvirtual

Implements FileSystem.

◆ _ls()

void SubFileSystem::_ls ( FileSystemPathView  path,
std::vector< DirectoryEntry > *  entries 
) const
overrideprotectedvirtual

Implements FileSystem.

◆ _openForReading()

std::unique_ptr< InputStream > SubFileSystem::_openForReading ( FileSystemPathView  path) const
overrideprotectedvirtual

Implements FileSystem.

◆ _openForWriting()

std::unique_ptr< OutputStream > SubFileSystem::_openForWriting ( FileSystemPathView  path)
overrideprotectedvirtual

Implements FileSystem.

◆ _read()

Blob SubFileSystem::_read ( FileSystemPathView  path) const
overrideprotectedvirtual

Implements FileSystem.

◆ _remove()

bool SubFileSystem::_remove ( FileSystemPathView  path)
overrideprotectedvirtual

Implements FileSystem.

◆ _rename()

void SubFileSystem::_rename ( FileSystemPathView  srcPath,
FileSystemPathView  dstPath 
)
overrideprotectedvirtual

Reimplemented from FileSystem.

◆ _stat()

FileStat SubFileSystem::_stat ( FileSystemPathView  path) const
overrideprotectedvirtual

Implements FileSystem.

◆ _write()

void SubFileSystem::_write ( FileSystemPathView  path,
const Blob data 
)
overrideprotectedvirtual

Implements FileSystem.

Member Data Documentation

◆ _base

FileSystem* SubFileSystem::_base
private

◆ _basePath

FileSystemPath SubFileSystem::_basePath
private

The documentation for this class was generated from the following files: