This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source. More...
#include <wpi/MemoryBuffer.h>
Public Member Functions | |
uint8_t * | begin () |
uint8_t * | end () |
std::span< uint8_t > | GetBuffer () |
std::span< char > | GetCharBuffer () const |
const uint8_t * | begin () const |
const uint8_t * | end () const |
std::span< const uint8_t > | GetBuffer () const |
size_t | size () const |
![]() | |
MemoryBuffer (const MemoryBuffer &)=delete | |
MemoryBuffer & | operator= (const MemoryBuffer &)=delete |
virtual | ~MemoryBuffer () |
const uint8_t * | begin () const |
const uint8_t * | end () const |
size_t | size () const |
std::span< const uint8_t > | GetBuffer () const |
std::span< const char > | GetCharBuffer () const |
virtual std::string_view | GetBufferIdentifier () const |
Return an identifier for this buffer, typically the filename it was read from. | |
virtual BufferKind | GetBufferKind () const =0 |
Return information on the memory mechanism used to support the MemoryBuffer. | |
MemoryBufferRef | GetMemBufferRef () const |
Static Public Member Functions | |
static std::unique_ptr< WriteThroughMemoryBuffer > | GetFile (std::string_view filename, std::error_code &ec, int64_t fileSize=-1) |
static std::unique_ptr< WriteThroughMemoryBuffer > | GetFileSlice (std::string_view filename, std::error_code &ec, uint64_t mapSize, uint64_t offset) |
Map a subrange of the specified file as a ReadWriteMemoryBuffer. | |
![]() | |
static wpi::expected< std::unique_ptr< MemoryBuffer >, std::error_code > | GetFile (std::string_view filename, int64_t fileSize=-1) |
Open the specified file as a MemoryBuffer, returning a new MemoryBuffer if successful, otherwise returning null. | |
static std::unique_ptr< MemoryBuffer > | GetFileAsStream (std::string_view filename, std::error_code &ec) |
Read all of the specified file into a MemoryBuffer as a stream (i.e. | |
static std::unique_ptr< MemoryBuffer > | GetOpenFileSlice (fs::file_t f, std::string_view filename, std::error_code &ec, uint64_t mapSize, int64_t offset) |
Given an already-open file descriptor, map some slice of it into a MemoryBuffer. | |
static std::unique_ptr< MemoryBuffer > | GetOpenFile (fs::file_t f, std::string_view filename, std::error_code &ec, uint64_t fileSize) |
Given an already-open file descriptor, read the file and return a MemoryBuffer. | |
static std::unique_ptr< MemoryBuffer > | GetMemBuffer (std::span< const uint8_t > inputData, std::string_view bufferName="") |
Open the specified memory range as a MemoryBuffer. | |
static std::unique_ptr< MemoryBuffer > | GetMemBuffer (MemoryBufferRef ref) |
static std::unique_ptr< MemoryBuffer > | GetMemBufferCopy (std::span< const uint8_t > inputData, std::string_view bufferName="") |
Open the specified memory range as a MemoryBuffer, copying the contents and taking ownership of it. | |
static std::unique_ptr< MemoryBuffer > | GetFileSlice (std::string_view filename, std::error_code &ec, uint64_t mapSize, uint64_t offset) |
Map a subrange of the specified file as a MemoryBuffer. | |
Protected Member Functions | |
WriteThroughMemoryBuffer ()=default | |
![]() | |
MemoryBuffer ()=default | |
void | Init (const uint8_t *bufStart, const uint8_t *bufEnd) |
Additional Inherited Members | |
![]() | |
enum | BufferKind { MemoryBuffer_Malloc , MemoryBuffer_MMap } |
The kind of memory backing used to support the MemoryBuffer. More... | |
This class is an extension of MemoryBuffer, which allows write access to the underlying contents and committing those changes to the original source.
It only supports creation methods that are guaranteed to produce a writable buffer. For example, mapping a file read-only is not supported.
|
protecteddefault |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
|
static |
Map a subrange of the specified file as a ReadWriteMemoryBuffer.
|
inline |