|
OpenEnroth 0259030
|
#include <MemoryFileSystem.h>
Public Member Functions | |
| MemoryFileSystem (std::string_view displayName) | |
| void | clear () |
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 Types | |
| using | MemoryFileData = detail::MemoryFileData |
| using | Node = FileSystemTrieNode< std::shared_ptr< MemoryFileData > > |
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 |
| const Node * | nodeForReading (FileSystemPathView path) const |
| Node * | nodeForWriting (FileSystemPathView path) |
Private Attributes | |
| std::string | _displayName |
| FileSystemTrie< std::shared_ptr< MemoryFileData > > | _trie |
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 |
In-memory file system.
Works almost like a regular FS, with some minor differences:
const methods. Use a locking wrapper if you need thread safety.Also, like a proper file system, it allows removing and renaming files while they are open for reading / writing.
|
private |
|
private |
|
explicit |
|
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.
| void MemoryFileSystem::clear | ( | ) |
|
private |
|
private |
|
private |
|
private |