LLVM  10.0.0svn
Namespaces | Classes | Functions
llvm::vfs Namespace Reference

Namespaces

 detail
 

Classes

class  directory_entry
 A member of a directory, yielded by a directory_iterator. More...
 
class  directory_iterator
 An input iterator over the entries in a virtual path, similar to llvm::sys::fs::directory_iterator. More...
 
class  File
 Represents an open file. More...
 
class  FileSystem
 The virtual file system interface. More...
 
class  InMemoryFileSystem
 An in-memory file system. More...
 
class  OverlayFileSystem
 A file system that allows overlaying one AbstractFileSystem on top of another. More...
 
class  ProxyFileSystem
 By default, this delegates all calls to the underlying file system. More...
 
class  recursive_directory_iterator
 An input iterator over the recursive contents of a virtual path, similar to llvm::sys::fs::recursive_directory_iterator. More...
 
class  RedirectingFileSystem
 A virtual file system parsed from a YAML file. More...
 
class  RedirectingFileSystemParser
 A helper class to hold the common YAML parsing state. More...
 
class  Status
 The result of a status operation. More...
 
class  VFSFromYamlDirIterImpl
 
struct  YAMLVFSEntry
 
class  YAMLVFSWriter
 

Functions

IntrusiveRefCntPtr< FileSystemgetRealFileSystem ()
 Gets an vfs::FileSystem for the 'real' file system, as seen by the operating system. More...
 
std::unique_ptr< FileSystemcreatePhysicalFileSystem ()
 Create an vfs::FileSystem for the 'real' file system, as seen by the operating system. More...
 
llvm::sys::fs::UniqueID getNextVirtualUniqueID ()
 Get a globally unique ID for a virtual file or directory. More...
 
IntrusiveRefCntPtr< FileSystemgetVFSFromYAML (std::unique_ptr< llvm::MemoryBuffer > Buffer, llvm::SourceMgr::DiagHandlerTy DiagHandler, StringRef YAMLFilePath, void *DiagContext=nullptr, IntrusiveRefCntPtr< FileSystem > ExternalFS=getRealFileSystem())
 Gets a FileSystem for a virtual file system described in YAML format. More...
 
void collectVFSFromYAML (std::unique_ptr< llvm::MemoryBuffer > Buffer, llvm::SourceMgr::DiagHandlerTy DiagHandler, StringRef YAMLFilePath, SmallVectorImpl< YAMLVFSEntry > &CollectedEntries, void *DiagContext=nullptr, IntrusiveRefCntPtr< FileSystem > ExternalFS=getRealFileSystem())
 Collect all pairs of <virtual path, real path> entries from the YAMLFilePath. More...
 
static ErrorOr< const detail::InMemoryNode * > lookupInMemoryNode (const InMemoryFileSystem &FS, detail::InMemoryDirectory *Dir, const Twine &P)
 

Function Documentation

◆ collectVFSFromYAML()

void llvm::vfs::collectVFSFromYAML ( std::unique_ptr< llvm::MemoryBuffer Buffer,
llvm::SourceMgr::DiagHandlerTy  DiagHandler,
StringRef  YAMLFilePath,
SmallVectorImpl< YAMLVFSEntry > &  CollectedEntries,
void *  DiagContext = nullptr,
IntrusiveRefCntPtr< FileSystem ExternalFS = getRealFileSystem() 
)

Collect all pairs of <virtual path, real path> entries from the YAMLFilePath.

This is used by the module dependency collector to forward the entries into the reproducer output VFS YAML file.

Referenced by getVFSEntries().

◆ createPhysicalFileSystem()

std::unique_ptr< FileSystem > llvm::vfs::createPhysicalFileSystem ( )

Create an vfs::FileSystem for the 'real' file system, as seen by the operating system.

It has its own working directory, independent of (but initially equal to) that of the process.

Definition at line 351 of file VirtualFileSystem.cpp.

◆ getNextVirtualUniqueID()

UniqueID llvm::vfs::getNextVirtualUniqueID ( )

Get a globally unique ID for a virtual file or directory.

Definition at line 1867 of file VirtualFileSystem.cpp.

References llvm::max().

Referenced by llvm::vfs::InMemoryFileSystem::getCurrentWorkingDirectory().

◆ getRealFileSystem()

IntrusiveRefCntPtr< FileSystem > llvm::vfs::getRealFileSystem ( )

Gets an vfs::FileSystem for the 'real' file system, as seen by the operating system.

The working directory is linked to the process's working directory. (This is usually thread-hostile).

Definition at line 346 of file VirtualFileSystem.cpp.

Referenced by llvm::vfs::InMemoryFileSystem::getCurrentWorkingDirectory().

◆ getVFSFromYAML()

IntrusiveRefCntPtr<FileSystem> llvm::vfs::getVFSFromYAML ( std::unique_ptr< llvm::MemoryBuffer Buffer,
llvm::SourceMgr::DiagHandlerTy  DiagHandler,
StringRef  YAMLFilePath,
void *  DiagContext = nullptr,
IntrusiveRefCntPtr< FileSystem ExternalFS = getRealFileSystem() 
)

Gets a FileSystem for a virtual file system described in YAML format.

Referenced by llvm::vfs::InMemoryFileSystem::getCurrentWorkingDirectory(), and llvm::vfs::RedirectingFileSystem::getRealPath().

◆ lookupInMemoryNode()

static ErrorOr<const detail::InMemoryNode *> llvm::vfs::lookupInMemoryNode ( const InMemoryFileSystem FS,
detail::InMemoryDirectory Dir,
const Twine P 
)
static