This class is an extension of MemoryBuffer, which allows copy-on-write access to the underlying contents. 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< WritableMemoryBuffer > | GetFile (std::string_view filename, std::error_code &ec, int64_t fileSize=-1) |
static std::unique_ptr< WritableMemoryBuffer > | GetFileSlice (std::string_view filename, std::error_code &ec, uint64_t mapSize, uint64_t offset) |
Map a subrange of the specified file as a WritableMemoryBuffer. | |
static std::unique_ptr< WritableMemoryBuffer > | GetNewUninitMemBuffer (size_t size, std::string_view bufferName="") |
Allocate a new MemoryBuffer of the specified size that is not initialized. | |
static std::unique_ptr< WritableMemoryBuffer > | GetNewMemBuffer (size_t size, std::string_view bufferName="") |
Allocate a new zero-initialized MemoryBuffer of the specified size. | |
![]() | |
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 | |
WritableMemoryBuffer ()=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 copy-on-write access to the underlying contents.
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 WritableMemoryBuffer.
|
static |
Allocate a new zero-initialized MemoryBuffer of the specified size.
Note that the caller need not initialize the memory allocated by this method. The memory is owned by the MemoryBuffer object.
|
static |
Allocate a new MemoryBuffer of the specified size that is not initialized.
Note that the caller should initialize the memory allocated by this method. The memory is owned by the MemoryBuffer object.
|
inline |