Types

Name

Description

File

Represents an open file.

FileSystem

The virtual file system interface.

HashingOutputBackend

An output backend that only generates the hash for outputs.

HashingOutputFile

HashingOutputFile.

HashingStream

raw_pwrite_stream that writes to a hasher.

InMemoryFileSystem

An in‐memory file system.

NullOutputFileImpl

OnDiskOutputBackend

An output backend that creates files on disk, wrapping APIs in sys::fs.

OutputBackend

Interface for virtualized outputs.

OutputConfig

Full configuration for an output for use by the OutputBackend. Each configuration flag is either true or false.

OutputConfigError

Error related to an OutputConfig for an OutputFile. Derives from OutputError and adds getConfig().

OutputError

Error related to an OutputFile. Derives from ECError and adds getOutputPath().

OutputFile

A virtualized output file that writes to a specific backend.

OutputFileImpl

OverlayFileSystem

A file system that allows overlaying one AbstractFileSystem on top of another.

ProxyFileSystem

By default, this delegates all calls to the underlying file system. This is useful when derived file systems want to override some calls and still proxy other calls.

ProxyOutputBackend

A helper class for proxying another backend, with the default implementation to forward to the underlying backend.

RedirectingFSDirIterImpl

RedirectingFileSystem

A virtual file system parsed from a YAML file.

RedirectingFileSystemParser

Status

The result of a status operation.

TempFileOutputError

Error related to a temporary file for an OutputFile. Derives from OutputError and adds getTempPath().

TracingFileSystemImpl

File system that tracks the number of calls to the underlying file system. This is particularly useful when wrapped around RealFileSystem to add lightweight tracking of expensive syscalls.

YAMLVFSEntry

YAMLVFSWriter

directory_entry

A member of a directory, yielded by a directory_iterator. Only information available on most platforms is included.

directory_iterator

An input iterator over the entries in a virtual path, similar to llvm::sys::fs::directory_iterator.

recursive_directory_iterator

An input iterator over the recursive contents of a virtual path, similar to llvm::sys::fs::recursive_directory_iterator.

Type Aliases

Name

Description

AtomicTracingFileSystem

Concurrent‐safe tracing filesystem. Counters are std::atomic<std::size_t> so the proxy can be shared across threads.

TracingFileSystem

Single‐threaded tracing filesystem. Counters are plain std::size_t and must not be incremented concurrently.

Enums

Functions

Name

Description

collectVFSEntries

Collect all pairs of <virtual path, real path> entries from the VFS. This is used by the module dependency collector to forward the entries into the reproducer output VFS YAML file.

consumeDiscardOnDestroy

Update File to silently discard itself if it's still open when it's destroyed.

convertToOutputError

Return Error::success() or use OutputPath to create an OutputError, depending on EC.

convertToTempFileOutputError

Return Error::success() or use TempPath and OutputPath to create a TempFileOutputError, depending on EC.

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. This may only be called outside the IO sandbox.

getNextVirtualUniqueID

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

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). This may only be called outside the IO sandbox.

getVFSFromYAML

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

makeFilteringOutputBackend

Make a backend where OutputBackend::createFile() forwards to UnderlyingBackend when Filter is true, and otherwise returns a NullOutput.

makeMirroringOutputBackend

Create a backend that forwards OutputBackend::createFile() to both Backend1 and Backend2. Writing to such backend will create identical outputs using two different backends.

makeNullOutputBackend

Create a backend that ignores all output.

make_error_code

output_category

Created with MrDocs