20#ifndef LLVM_SUPPORT_VIRTUALOUTPUTBACKEND_H
21#define LLVM_SUPPORT_VIRTUALOUTPUTBACKEND_H
35 virtual void anchor();
52 std::optional<OutputConfig> Config = std::nullopt);
This file defines the RefCountedBase, ThreadSafeRefCountedBase, and IntrusiveRefCntPtr classes.
This file contains the declarations of the OutputConfig class.
This file contains the declarations of the llvm::vfs::OutputFile class, which is a virtualized output...
Tagged union holding either a T or a Error.
A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCount...
StringRef - Represent a constant reference to a string, i.e.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
virtual Expected< std::unique_ptr< OutputFileImpl > > createFileImpl(StringRef Path, std::optional< OutputConfig > Config)=0
Create a file for Path.
virtual ~OutputBackend()=default
virtual IntrusiveRefCntPtr< OutputBackend > cloneImpl() const =0
Must be thread-safe.
Expected< OutputFile > createFile(const Twine &Path, std::optional< OutputConfig > Config=std::nullopt)
Create a file.
IntrusiveRefCntPtr< OutputBackend > clone() const
Get a backend that points to the same destination as this one but that has independent settings.