LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::msf::MappedBlockStream Class Reference

MappedBlockStream represents data stored in an MSF file into chunks of a particular size (called the Block Size), and whose chunks may not be necessarily contiguous. More...

#include "llvm/DebugInfo/MSF/MappedBlockStream.h"

Inheritance diagram for llvm::msf::MappedBlockStream:
Inheritance graph
[legend]

Public Member Functions

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.
 
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.
 
BumpPtrAllocatorgetAllocator ()
 
void invalidateCache ()
 
uint32_t getBlockSize () const
 
uint32_t getNumBlocks () const
 
uint32_t getStreamLength () const
 
- Public Member Functions inherited from llvm::BinaryStream
virtual ~BinaryStream ()=default
 
virtual llvm::endianness getEndian () const =0
 
virtual Error readBytes (uint64_t Offset, uint64_t Size, ArrayRef< uint8_t > &Buffer)=0
 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.
 
virtual Error readLongestContiguousChunk (uint64_t Offset, ArrayRef< uint8_t > &Buffer)=0
 Given an offset into the stream, read as much as possible without copying any data.
 
virtual uint64_t getLength ()=0
 Return the number of bytes of data in this stream.
 
virtual BinaryStreamFlags getFlags () const
 Return the properties of this stream.
 

Static Public Member Functions

static std::unique_ptr< MappedBlockStreamcreateStream (uint32_t BlockSize, const MSFStreamLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
 
static std::unique_ptr< MappedBlockStreamcreateIndexedStream (const MSFLayout &Layout, BinaryStreamRef MsfData, uint32_t StreamIndex, BumpPtrAllocator &Allocator)
 
static std::unique_ptr< MappedBlockStreamcreateFpmStream (const MSFLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
 
static std::unique_ptr< MappedBlockStreamcreateDirectoryStream (const MSFLayout &Layout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
 

Protected Member Functions

 MappedBlockStream (uint32_t BlockSize, const MSFStreamLayout &StreamLayout, BinaryStreamRef MsfData, BumpPtrAllocator &Allocator)
 
- Protected Member Functions inherited from llvm::BinaryStream
Error checkOffsetForRead (uint64_t Offset, uint64_t DataSize)
 

Friends

class WritableMappedBlockStream
 

Detailed Description

MappedBlockStream represents data stored in an MSF file into chunks of a particular size (called the Block Size), and whose chunks may not be necessarily contiguous.

The arrangement of these chunks MSF the file is described by some other metadata contained within the MSF file. In the case of a standard MSF Stream, the layout of the stream's blocks is described by the MSF "directory", but in the case of the directory itself, the layout is described by an array at a fixed location within the MSF. MappedBlockStream provides methods for reading from and writing to one of these streams transparently, as if it were a contiguous sequence of bytes.

Definition at line 37 of file MappedBlockStream.h.

Constructor & Destructor Documentation

◆ MappedBlockStream()

MappedBlockStream::MappedBlockStream ( uint32_t  BlockSize,
const MSFStreamLayout StreamLayout,
BinaryStreamRef  MsfData,
BumpPtrAllocator Allocator 
)
protected

Definition at line 43 of file MappedBlockStream.cpp.

References Allocator.

Member Function Documentation

◆ createDirectoryStream()

std::unique_ptr< MappedBlockStream > MappedBlockStream::createDirectoryStream ( const MSFLayout Layout,
BinaryStreamRef  MsfData,
BumpPtrAllocator Allocator 
)
static

◆ createFpmStream()

std::unique_ptr< MappedBlockStream > MappedBlockStream::createFpmStream ( const MSFLayout Layout,
BinaryStreamRef  MsfData,
BumpPtrAllocator Allocator 
)
static

◆ createIndexedStream()

std::unique_ptr< MappedBlockStream > MappedBlockStream::createIndexedStream ( const MSFLayout Layout,
BinaryStreamRef  MsfData,
uint32_t  StreamIndex,
BumpPtrAllocator Allocator 
)
static

◆ createStream()

std::unique_ptr< MappedBlockStream > MappedBlockStream::createStream ( uint32_t  BlockSize,
const MSFStreamLayout Layout,
BinaryStreamRef  MsfData,
BumpPtrAllocator Allocator 
)
static

Definition at line 50 of file MappedBlockStream.cpp.

References Allocator.

Referenced by createDirectoryStream(), and createFpmStream().

◆ getAllocator()

BumpPtrAllocator & llvm::msf::MappedBlockStream::getAllocator ( )
inline

Definition at line 68 of file MappedBlockStream.h.

References Allocator.

◆ getBlockSize()

uint32_t llvm::msf::MappedBlockStream::getBlockSize ( ) const
inline

Definition at line 72 of file MappedBlockStream.h.

References BlockSize.

Referenced by llvm::msf::WritableMappedBlockStream::getBlockSize().

◆ getEndian()

llvm::endianness llvm::msf::MappedBlockStream::getEndian ( ) const
inlineoverridevirtual

Implements llvm::BinaryStream.

Definition at line 57 of file MappedBlockStream.h.

References llvm::little.

◆ getLength()

uint64_t MappedBlockStream::getLength ( )
overridevirtual

Return the number of bytes of data in this stream.

Implements llvm::BinaryStream.

Definition at line 194 of file MappedBlockStream.cpp.

References llvm::msf::MSFStreamLayout::Length.

Referenced by llvm::msf::WritableMappedBlockStream::getLength().

◆ getNumBlocks()

uint32_t llvm::msf::MappedBlockStream::getNumBlocks ( ) const
inline

◆ getStreamLength()

uint32_t llvm::msf::MappedBlockStream::getStreamLength ( ) const
inline

◆ invalidateCache()

void MappedBlockStream::invalidateCache ( )

Definition at line 270 of file MappedBlockStream.cpp.

◆ readBytes()

Error MappedBlockStream::readBytes ( uint64_t  Offset,
uint64_t  Size,
ArrayRef< uint8_t > &  Buffer 
)
overridevirtual

◆ readLongestContiguousChunk()

Error MappedBlockStream::readLongestContiguousChunk ( uint64_t  Offset,
ArrayRef< uint8_t > &  Buffer 
)
overridevirtual

Friends And Related Function Documentation

◆ WritableMappedBlockStream

friend class WritableMappedBlockStream
friend

Definition at line 38 of file MappedBlockStream.h.


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