LLVM 22.0.0git
llvm::AppendingBinaryByteStream Class Reference

An implementation of WritableBinaryStream which can write at its end causing the underlying data to grow. More...

#include "llvm/Support/BinaryByteStream.h"

Inheritance diagram for llvm::AppendingBinaryByteStream:
[legend]

Public Member Functions

 AppendingBinaryByteStream ()=default
 AppendingBinaryByteStream (llvm::endianness Endian)
void clear ()
llvm::endianness getEndian () const override
Error readBytes (uint64_t Offset, uint64_t Size, ArrayRef< uint8_t > &Buffer) override
 Given an offset into the stream and a number of bytes, attempt to read the bytes and set the output ArrayRef to point to data owned by the stream.
void insert (uint64_t Offset, ArrayRef< uint8_t > Bytes)
Error readLongestContiguousChunk (uint64_t Offset, ArrayRef< uint8_t > &Buffer) override
 Given an offset into the stream, read as much as possible without copying any data.
uint64_t getLength () override
 Return the number of bytes of data in this stream.
Error writeBytes (uint64_t Offset, ArrayRef< uint8_t > Buffer) override
 Attempt to write the given bytes into the stream at the desired offset.
Error commit () override
 For buffered streams, commits changes to the backing store.
BinaryStreamFlags getFlags () const override
 Return the properties of this stream.
MutableArrayRef< uint8_tdata ()
Public Member Functions inherited from llvm::WritableBinaryStream
 ~WritableBinaryStream () override=default
BinaryStreamFlags getFlags () const override
 Return the properties of this stream.
Public Member Functions inherited from llvm::BinaryStream
virtual ~BinaryStream ()=default

Additional Inherited Members

Protected Member Functions inherited from llvm::WritableBinaryStream
Error checkOffsetForWrite (uint64_t Offset, uint64_t DataSize)
Protected Member Functions inherited from llvm::BinaryStream
Error checkOffsetForRead (uint64_t Offset, uint64_t DataSize)

Detailed Description

An implementation of WritableBinaryStream which can write at its end causing the underlying data to grow.

This class owns the underlying data.

Definition at line 134 of file BinaryByteStream.h.

Constructor & Destructor Documentation

◆ AppendingBinaryByteStream() [1/2]

llvm::AppendingBinaryByteStream::AppendingBinaryByteStream ( )
default

◆ AppendingBinaryByteStream() [2/2]

llvm::AppendingBinaryByteStream::AppendingBinaryByteStream ( llvm::endianness Endian)
inline

Definition at line 140 of file BinaryByteStream.h.

Member Function Documentation

◆ clear()

void llvm::AppendingBinaryByteStream::clear ( )
inline

Definition at line 142 of file BinaryByteStream.h.

◆ commit()

Error llvm::AppendingBinaryByteStream::commit ( )
inlineoverridevirtual

For buffered streams, commits changes to the backing store.

Implements llvm::WritableBinaryStream.

Definition at line 191 of file BinaryByteStream.h.

References llvm::Error::success().

◆ data()

MutableArrayRef< uint8_t > llvm::AppendingBinaryByteStream::data ( )
inline

Definition at line 196 of file BinaryByteStream.h.

◆ getEndian()

llvm::endianness llvm::AppendingBinaryByteStream::getEndian ( ) const
inlineoverridevirtual

Implements llvm::BinaryStream.

Definition at line 144 of file BinaryByteStream.h.

◆ getFlags()

BinaryStreamFlags llvm::AppendingBinaryByteStream::getFlags ( ) const
inlineoverridevirtual

Return the properties of this stream.

Reimplemented from llvm::BinaryStream.

Definition at line 194 of file BinaryByteStream.h.

References llvm::BSF_Append, and llvm::BSF_Write.

◆ getLength()

uint64_t llvm::AppendingBinaryByteStream::getLength ( )
inlineoverridevirtual

Return the number of bytes of data in this stream.

Implements llvm::BinaryStream.

Definition at line 168 of file BinaryByteStream.h.

Referenced by writeBytes().

◆ insert()

void llvm::AppendingBinaryByteStream::insert ( uint64_t Offset,
ArrayRef< uint8_t > Bytes )
inline

◆ readBytes()

Error llvm::AppendingBinaryByteStream::readBytes ( uint64_t Offset,
uint64_t Size,
ArrayRef< uint8_t > & Buffer )
inlineoverridevirtual

Given an offset into the stream and a number of bytes, attempt to read the bytes and set the output ArrayRef to point to data owned by the stream.

Implements llvm::BinaryStream.

Definition at line 146 of file BinaryByteStream.h.

References llvm::ArrayRef(), llvm::WritableBinaryStream::checkOffsetForWrite(), llvm::Offset, Size, llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), and llvm::Error::success().

◆ readLongestContiguousChunk()

Error llvm::AppendingBinaryByteStream::readLongestContiguousChunk ( uint64_t Offset,
ArrayRef< uint8_t > & Buffer )
inlineoverridevirtual

Given an offset into the stream, read as much as possible without copying any data.

Implements llvm::BinaryStream.

Definition at line 159 of file BinaryByteStream.h.

References llvm::ArrayRef(), llvm::WritableBinaryStream::checkOffsetForWrite(), llvm::Offset, llvm::ArrayRef< T >::slice(), and llvm::Error::success().

◆ writeBytes()

Error llvm::AppendingBinaryByteStream::writeBytes ( uint64_t Offset,
ArrayRef< uint8_t > Data )
inlineoverridevirtual

Attempt to write the given bytes into the stream at the desired offset.

This will always necessitate a copy. Cannot shrink or grow the stream, only writes into existing allocated space.

Implements llvm::WritableBinaryStream.

Definition at line 170 of file BinaryByteStream.h.

References llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::empty(), getLength(), llvm::invalid_offset, llvm::make_error(), llvm::Offset, llvm::ArrayRef< T >::size(), and llvm::Error::success().


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