clang  6.0.0svn
Namespaces | Classes | Functions
clang::vfs Namespace Reference

Namespaces

 detail
 

Classes

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  recursive_directory_iterator
 An input iterator over the recursive contents of a virtual path, similar to llvm::sys::fs::recursive_directory_iterator. More...
 
class  Status
 The result of a status operation. More...
 
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< detail::InMemoryNode * > lookupInMemoryNode (const InMemoryFileSystem &FS, detail::InMemoryDirectory *Dir, const Twine &P)
 

Function Documentation

◆ collectVFSFromYAML()

void clang::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 clang::vfs::getNextVirtualUniqueID ( )

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

Definition at line 1657 of file VirtualFileSystem.cpp.

References max().

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

◆ getRealFileSystem()

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

◆ getVFSFromYAML()

IntrusiveRefCntPtr<FileSystem> clang::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 clang::vfs::InMemoryFileSystem::getCurrentWorkingDirectory().

◆ lookupInMemoryNode()

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