LLVM 20.0.0git
Classes | Namespaces | Functions
VirtualFileSystem.h File Reference

Defines the virtual file system interface vfs::FileSystem. More...

#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Chrono.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/ExtensibleRTTI.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SourceMgr.h"
#include <cassert>
#include <cstdint>
#include <ctime>
#include <memory>
#include <optional>
#include <string>
#include <system_error>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::vfs::Status
 The result of a status operation. More...
 
class  llvm::vfs::File
 Represents an open file. More...
 
class  llvm::vfs::directory_entry
 A member of a directory, yielded by a directory_iterator. More...
 
struct  llvm::vfs::detail::DirIterImpl
 An interface for virtual file systems to provide an iterator over the (non-recursive) contents of a directory. More...
 
class  llvm::vfs::directory_iterator
 An input iterator over the entries in a virtual path, similar to llvm::sys::fs::directory_iterator. More...
 
struct  llvm::vfs::detail::RecDirIterState
 Keeps state for the recursive_directory_iterator. More...
 
class  llvm::vfs::recursive_directory_iterator
 An input iterator over the recursive contents of a virtual path, similar to llvm::sys::fs::recursive_directory_iterator. More...
 
class  llvm::vfs::FileSystem
 The virtual file system interface. More...
 
class  llvm::vfs::OverlayFileSystem
 A file system that allows overlaying one AbstractFileSystem on top of another. More...
 
class  llvm::vfs::ProxyFileSystem
 By default, this delegates all calls to the underlying file system. More...
 
struct  llvm::vfs::detail::NewInMemoryNodeInfo
 
class  llvm::vfs::detail::NamedNodeOrError
 
class  llvm::vfs::InMemoryFileSystem
 An in-memory file system. More...
 
struct  llvm::vfs::YAMLVFSEntry
 
class  llvm::vfs::RedirectingFileSystem
 A virtual file system parsed from a YAML file. More...
 
class  llvm::vfs::RedirectingFileSystem::Entry
 A single file or directory in the VFS. More...
 
class  llvm::vfs::RedirectingFileSystem::DirectoryEntry
 A directory in the vfs with explicitly specified contents. More...
 
class  llvm::vfs::RedirectingFileSystem::RemapEntry
 A file or directory in the vfs that is mapped to a file or directory in the external filesystem. More...
 
class  llvm::vfs::RedirectingFileSystem::DirectoryRemapEntry
 A directory in the vfs that maps to a directory in the external file system. More...
 
class  llvm::vfs::RedirectingFileSystem::FileEntry
 A file in the vfs that maps to a file in the external file system. More...
 
struct  llvm::vfs::RedirectingFileSystem::LookupResult
 Represents the result of a path lookup into the RedirectingFileSystem. More...
 
class  llvm::vfs::YAMLVFSWriter
 
class  llvm::vfs::TracingFileSystem
 File system that tracks the number of calls to the underlying file system. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::vfs
 
namespace  llvm::vfs::detail
 

Functions

IntrusiveRefCntPtr< FileSystemllvm::vfs::getRealFileSystem ()
 Gets an vfs::FileSystem for the 'real' file system, as seen by the operating system.
 
std::unique_ptr< FileSystemllvm::vfs::createPhysicalFileSystem ()
 Create an vfs::FileSystem for the 'real' file system, as seen by the operating system.
 
llvm::sys::fs::UniqueID llvm::vfs::getNextVirtualUniqueID ()
 Get a globally unique ID for a virtual file or directory.
 
std::unique_ptr< 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.
 
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.
 

Detailed Description

Defines the virtual file system interface vfs::FileSystem.

Definition in file VirtualFileSystem.h.