OpenEnroth 73e68f7
|
#include <DirectoryFileSystem.h>
Public Member Functions | |
DirectoryFileSystem (std::string_view root) | |
virtual | ~DirectoryFileSystem () |
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< DirectoryEntry > | ls (std::string_view path) const |
std::vector< DirectoryEntry > | ls (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< InputStream > | openForReading (std::string_view path) const |
std::unique_ptr< InputStream > | openForReading (FileSystemPathView path) const |
std::unique_ptr< OutputStream > | openForWriting (std::string_view path) |
std::unique_ptr< OutputStream > | openForWriting (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 |
Private 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 |
std::filesystem::path | makeBasePath (FileSystemPathView path) const |
Private Attributes | |
std::string | _originalRoot |
std::filesystem::path | _root |
Additional Inherited Members | |
Protected Types inherited from FileSystem | |
template<class T > | |
using | FileSystemTrieNode = detail::FileSystemTrieNode< T > |
template<class T > | |
using | FileSystemTrie = detail::FileSystemTrie< T > |
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 |
View over a directory on a file system.
All methods will work as if the root directory of this FileSystem
exists, even if it doesn't exist on the underlying file system.
Files outside of the root directory are not observable through this FileSystem
- the methods will behave as if these files don't exist.
When it comes to permissions, this filesystem tries its best to provide a simple guarantee that ls
for an existing folder never throws, and is in sync with what stat
/ exists
return. This means that some files or folders that are observable through ls
in bash won't be observable through this filesystem.
|
explicit |
|
virtualdefault |
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Reimplemented from FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
overrideprivatevirtual |
Implements FileSystem.
|
private |
|
private |
|
private |