WPILibC++ 2027.0.0-alpha-4
Loading...
Searching...
No Matches
wpi::util::WritableMemoryBuffer Class Reference

This class is an extension of MemoryBuffer, which allows copy-on-write access to the underlying contents. More...

#include <wpi/util/MemoryBuffer.hpp>

Inheritance diagram for wpi::util::WritableMemoryBuffer:
wpi::util::MemoryBuffer

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
Public Member Functions inherited from wpi::util::MemoryBuffer
 MemoryBuffer (const MemoryBuffer &)=delete
MemoryBufferoperator= (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< WritableMemoryBufferGetFile (std::string_view filename, std::error_code &ec, int64_t fileSize=-1)
static std::unique_ptr< WritableMemoryBufferGetFileSlice (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< WritableMemoryBufferGetNewUninitMemBuffer (size_t size, std::string_view bufferName="")
 Allocate a new MemoryBuffer of the specified size that is not initialized.
static std::unique_ptr< WritableMemoryBufferGetNewMemBuffer (size_t size, std::string_view bufferName="")
 Allocate a new zero-initialized MemoryBuffer of the specified size.
Static Public Member Functions inherited from wpi::util::MemoryBuffer
static wpi::util::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< MemoryBufferGetFileAsStream (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< MemoryBufferGetOpenFileSlice (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< MemoryBufferGetOpenFile (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< MemoryBufferGetMemBuffer (std::span< const uint8_t > inputData, std::string_view bufferName="")
 Open the specified memory range as a MemoryBuffer.
static std::unique_ptr< MemoryBufferGetMemBuffer (MemoryBufferRef ref)
static std::unique_ptr< MemoryBufferGetMemBufferCopy (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< MemoryBufferGetFileSlice (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
Protected Member Functions inherited from wpi::util::MemoryBuffer
 MemoryBuffer ()=default
void Init (const uint8_t *bufStart, const uint8_t *bufEnd)

Additional Inherited Members

Public Types inherited from wpi::util::MemoryBuffer
enum  BufferKind { MemoryBuffer_Malloc , MemoryBuffer_MMap }
 The kind of memory backing used to support the MemoryBuffer. More...

Detailed Description

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.

Constructor & Destructor Documentation

◆ WritableMemoryBuffer()

wpi::util::WritableMemoryBuffer::WritableMemoryBuffer ( )
protecteddefault

Member Function Documentation

◆ begin() [1/2]

uint8_t * wpi::util::WritableMemoryBuffer::begin ( )
inline

◆ begin() [2/2]

const uint8_t * wpi::util::MemoryBuffer::begin ( ) const
inline

◆ end() [1/2]

uint8_t * wpi::util::WritableMemoryBuffer::end ( )
inline

◆ end() [2/2]

const uint8_t * wpi::util::MemoryBuffer::end ( ) const
inline

◆ GetBuffer() [1/2]

std::span< uint8_t > wpi::util::WritableMemoryBuffer::GetBuffer ( )
inline

◆ GetBuffer() [2/2]

std::span< const uint8_t > wpi::util::MemoryBuffer::GetBuffer ( ) const
inline

◆ GetCharBuffer()

std::span< char > wpi::util::WritableMemoryBuffer::GetCharBuffer ( ) const
inline

◆ GetFile()

std::unique_ptr< WritableMemoryBuffer > wpi::util::WritableMemoryBuffer::GetFile ( std::string_view filename,
std::error_code & ec,
int64_t fileSize = -1 )
static

◆ GetFileSlice()

std::unique_ptr< WritableMemoryBuffer > wpi::util::WritableMemoryBuffer::GetFileSlice ( std::string_view filename,
std::error_code & ec,
uint64_t mapSize,
uint64_t offset )
static

Map a subrange of the specified file as a WritableMemoryBuffer.

◆ GetNewMemBuffer()

std::unique_ptr< WritableMemoryBuffer > wpi::util::WritableMemoryBuffer::GetNewMemBuffer ( size_t size,
std::string_view bufferName = "" )
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.

◆ GetNewUninitMemBuffer()

std::unique_ptr< WritableMemoryBuffer > wpi::util::WritableMemoryBuffer::GetNewUninitMemBuffer ( size_t size,
std::string_view bufferName = "" )
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.

◆ size()

size_t wpi::util::MemoryBuffer::size ( ) const
inline

The documentation for this class was generated from the following file: