LLVM  8.0.1
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...
 
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().

◆ getNextVirtualUniqueID()

UniqueID llvm::vfs::getNextVirtualUniqueID ( )

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

Definition at line 1798 of file VirtualFileSystem.cpp.

References llvm::max().

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

◆ getRealFileSystem()

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

◆ 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