|
clang
5.0.0
|
A file system that allows overlaying one AbstractFileSystem on top of another.
More...
#include "clang/Basic/VirtualFileSystem.h"
Public Types | |
| typedef FileSystemList::reverse_iterator | iterator |
Public Member Functions | |
| OverlayFileSystem (IntrusiveRefCntPtr< FileSystem > Base) | |
| void | pushOverlay (IntrusiveRefCntPtr< FileSystem > FS) |
| Pushes a file system on top of the stack. More... | |
| llvm::ErrorOr< Status > | status (const Twine &Path) override |
Get the status of the entry at Path, if one exists. More... | |
| llvm::ErrorOr< std::unique_ptr < File > > | openFileForRead (const Twine &Path) override |
Get a File object for the file at Path, if one exists. More... | |
| directory_iterator | dir_begin (const Twine &Dir, std::error_code &EC) override |
Get a directory_iterator for Dir. More... | |
| llvm::ErrorOr< std::string > | getCurrentWorkingDirectory () const override |
| Get the working directory of this file system. More... | |
| std::error_code | setCurrentWorkingDirectory (const Twine &Path) override |
| Set the working directory. More... | |
| iterator | overlays_begin () |
| Get an iterator pointing to the most recently added file system. More... | |
| iterator | overlays_end () |
| Get an iterator pointing one-past the least recently added file system. More... | |
Public Member Functions inherited from clang::vfs::FileSystem | |
| virtual | ~FileSystem () |
| llvm::ErrorOr< std::unique_ptr < llvm::MemoryBuffer > > | getBufferForFile (const Twine &Name, int64_t FileSize=-1, bool RequiresNullTerminator=true, bool IsVolatile=false) |
| This is a convenience method that opens a file, gets its content and then closes the file. More... | |
| bool | exists (const Twine &Path) |
| Check whether a file exists. Provided for convenience. More... | |
| std::error_code | makeAbsolute (SmallVectorImpl< char > &Path) const |
| Make Path an absolute path. More... | |
A file system that allows overlaying one AbstractFileSystem on top of another.
Consists of a stack of >=1 FileSystem objects, which are treated as being one merged file system. When there is a directory that exists in more than one file system, the OverlayFileSystem contains a directory containing the union of their contents. The attributes (permissions, etc.) of the top-most (most recently added) directory are used. When there is a file that exists in more than one file system, the file in the top-most file system overrides the other(s).
Definition at line 278 of file VirtualFileSystem.h.
| typedef FileSystemList::reverse_iterator clang::vfs::OverlayFileSystem::iterator |
Definition at line 296 of file VirtualFileSystem.h.
| OverlayFileSystem::OverlayFileSystem | ( | IntrusiveRefCntPtr< FileSystem > | Base | ) |
Definition at line 276 of file VirtualFileSystem.cpp.
|
overridevirtual |
Get a directory_iterator for Dir.
Implements clang::vfs::FileSystem.
Definition at line 383 of file VirtualFileSystem.cpp.
|
overridevirtual |
Get the working directory of this file system.
Implements clang::vfs::FileSystem.
Definition at line 309 of file VirtualFileSystem.cpp.
|
overridevirtual |
Get a File object for the file at Path, if one exists.
Implements clang::vfs::FileSystem.
Definition at line 298 of file VirtualFileSystem.cpp.
References E, I, clang::make_error_code(), and Result.
|
inline |
Get an iterator pointing to the most recently added file system.
Definition at line 299 of file VirtualFileSystem.h.
|
inline |
Get an iterator pointing one-past the least recently added file system.
Definition at line 303 of file VirtualFileSystem.h.
| void OverlayFileSystem::pushOverlay | ( | IntrusiveRefCntPtr< FileSystem > | FS | ) |
Pushes a file system on top of the stack.
Definition at line 280 of file VirtualFileSystem.cpp.
|
overridevirtual |
Set the working directory.
This will affect all following operations on this file system and may propagate down for nested file systems.
Implements clang::vfs::FileSystem.
Definition at line 314 of file VirtualFileSystem.cpp.
|
overridevirtual |
Get the status of the entry at Path, if one exists.
Implements clang::vfs::FileSystem.
Definition at line 287 of file VirtualFileSystem.cpp.
References E, I, and clang::make_error_code().
1.8.6