LLVM 20.0.0git
|
FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file. More...
#include "llvm/Support/FileOutputBuffer.h"
Public Types | |
enum | { F_executable = 1 , F_no_mmap = 2 } |
Public Member Functions | |
virtual uint8_t * | getBufferStart () const =0 |
Returns a pointer to the start of the buffer. | |
virtual uint8_t * | getBufferEnd () const =0 |
Returns a pointer to the end of the buffer. | |
virtual size_t | getBufferSize () const =0 |
Returns size of the buffer. | |
StringRef | getPath () const |
Returns path where file will show up if buffer is committed. | |
virtual Error | commit ()=0 |
Flushes the content of the buffer to its file and deallocates the buffer. | |
virtual | ~FileOutputBuffer ()=default |
If this object was previously committed, the destructor just deletes this object. | |
virtual void | discard () |
This removes the temporary file (unless it already was committed) but keeps the memory mapping alive. | |
Static Public Member Functions | |
static Expected< std::unique_ptr< FileOutputBuffer > > | create (StringRef FilePath, size_t Size, unsigned Flags=0) |
Factory method to create an OutputBuffer object which manages a read/write buffer of the specified size. | |
Protected Member Functions | |
FileOutputBuffer (StringRef Path) | |
Protected Attributes | |
std::string | FinalPath |
FileOutputBuffer - This interface provides simple way to create an in-memory buffer which will be written to a file.
During the lifetime of these objects, the content or existence of the specified file is undefined. That is, creating an OutputBuffer for a file may immediately remove the file. If the FileOutputBuffer is committed, the target file's content will become the buffer content at the time of the commit. If the FileOutputBuffer is not committed, the file will be deleted in the FileOutputBuffer destructor.
Definition at line 28 of file FileOutputBuffer.h.
anonymous enum |
Enumerator | |
---|---|
F_executable | Set the 'x' bit on the resulting file. |
F_no_mmap | Don't use mmap and instead write an in-memory buffer to a file when this buffer is closed. |
Definition at line 30 of file FileOutputBuffer.h.
|
virtualdefault |
If this object was previously committed, the destructor just deletes this object.
If this object was not committed, the destructor deallocates the buffer and the target file is never written.
|
inlineprotected |
Definition at line 80 of file FileOutputBuffer.h.
|
pure virtual |
Flushes the content of the buffer to its file and deallocates the buffer.
If commit() is not called before this object's destructor is called, the file is deleted in the destructor. The optional parameter is used if it turns out you want the file size to be smaller than initially requested.
|
static |
Factory method to create an OutputBuffer object which manages a read/write buffer of the specified size.
When committed, the buffer will be written to the file at the specified path.
When F_modify is specified and FilePath
refers to an existing on-disk file Size
may be set to -1, in which case the entire file is used. Otherwise, the file shrinks or grows as necessary based on the value of Size
. It is an error to specify F_modify and Size=-1 if FilePath
does not exist.
Definition at line 159 of file FileOutputBuffer.cpp.
References llvm::sys::fs::all_exe, llvm::sys::fs::all_read, llvm::sys::fs::all_write, createInMemoryBuffer(), createOnDiskBuffer(), llvm::errorCodeToError(), F_executable, F_no_mmap, llvm::is_a_directory, Size, and llvm::sys::fs::status().
Referenced by llvm::msf::MSFBuilder::commit(), llvm::objcopy::deepWriteArchive(), llvm::objcopy::coff::dumpSection(), dumpSectionToFile(), llvm::objcopy::wasm::dumpSectionToFile(), and llvm::ifs::writeELFBinaryToFile().
|
inlinevirtual |
This removes the temporary file (unless it already was committed) but keeps the memory mapping alive.
Definition at line 77 of file FileOutputBuffer.h.
|
pure virtual |
Returns a pointer to the end of the buffer.
|
pure virtual |
Returns size of the buffer.
|
pure virtual |
Returns a pointer to the start of the buffer.
|
inline |
Returns path where file will show up if buffer is committed.
Definition at line 61 of file FileOutputBuffer.h.
References FinalPath.
|
protected |
Definition at line 82 of file FileOutputBuffer.h.
Referenced by getPath().