OpenEnroth 73e68f7
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MaskingFileSystem Class Reference

#include <MaskingFileSystem.h>

Inheritance diagram for MaskingFileSystem:
ProxyFileSystem FileSystem

Public Member Functions

 MaskingFileSystem (FileSystem *base=nullptr)
 
virtual ~MaskingFileSystem ()
 
void mask (std::string_view path)
 
void mask (FileSystemPathView path)
 
bool unmask (std::string_view path)
 
bool unmask (FileSystemPathView path)
 
void clearMasks ()
 
- Public Member Functions inherited from ProxyFileSystem
 ProxyFileSystem (FileSystem *base=nullptr)
 
FileSystembase () const
 
void setBase (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
 

Private Member Functions

bool isMasked (FileSystemPathView path) const
 
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
 

Private Attributes

FileSystemTrie< bool > _masks
 

Additional Inherited Members

- Protected Types inherited from FileSystem
template<class T >
using FileSystemTrieNode = detail::FileSystemTrieNode< T >
 
template<class T >
using FileSystemTrie = detail::FileSystemTrie< T >
 
- Protected Member Functions inherited from ProxyFileSystem
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
 
FileSystemnonNullBase () const
 
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
 

Detailed Description

Proxy filesystem that supports masking out certain parts of the underlying filesystem.

Constructor & Destructor Documentation

◆ MaskingFileSystem()

MaskingFileSystem::MaskingFileSystem ( FileSystem base = nullptr)
explicit

◆ ~MaskingFileSystem()

MaskingFileSystem::~MaskingFileSystem ( )
virtualdefault

Member Function Documentation

◆ _displayPath()

std::string MaskingFileSystem::_displayPath ( FileSystemPathView  path) const
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _exists()

bool MaskingFileSystem::_exists ( FileSystemPathView  path) const
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _ls()

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

Reimplemented from ProxyFileSystem.

◆ _openForReading()

std::unique_ptr< InputStream > MaskingFileSystem::_openForReading ( FileSystemPathView  path) const
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _openForWriting()

std::unique_ptr< OutputStream > MaskingFileSystem::_openForWriting ( FileSystemPathView  path)
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _read()

Blob MaskingFileSystem::_read ( FileSystemPathView  path) const
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _remove()

bool MaskingFileSystem::_remove ( FileSystemPathView  path)
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _rename()

void MaskingFileSystem::_rename ( FileSystemPathView  srcPath,
FileSystemPathView  dstPath 
)
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _stat()

FileStat MaskingFileSystem::_stat ( FileSystemPathView  path) const
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ _write()

void MaskingFileSystem::_write ( FileSystemPathView  path,
const Blob data 
)
overrideprivatevirtual

Reimplemented from ProxyFileSystem.

◆ clearMasks()

void MaskingFileSystem::clearMasks ( )

◆ isMasked()

bool MaskingFileSystem::isMasked ( FileSystemPathView  path) const
private

◆ mask() [1/2]

void MaskingFileSystem::mask ( FileSystemPathView  path)

◆ mask() [2/2]

void MaskingFileSystem::mask ( std::string_view  path)

◆ unmask() [1/2]

bool MaskingFileSystem::unmask ( FileSystemPathView  path)

◆ unmask() [2/2]

bool MaskingFileSystem::unmask ( std::string_view  path)

Member Data Documentation

◆ _masks

FileSystemTrie<bool> MaskingFileSystem::_masks
private

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