LLVM  4.0.0
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 <MappedBlockStream.h>

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

Public Member Functions

Error readBytes (uint32_t Offset, uint32_t Size, ArrayRef< uint8_t > &Buffer) const override
 
Error readLongestContiguousChunk (uint32_t Offset, ArrayRef< uint8_t > &Buffer) const override
 
uint32_t getLength () const override
 
uint32_t getNumBytesCopied () const
 
llvm::BumpPtrAllocatorgetAllocator ()
 
void invalidateCache ()
 
uint32_t getBlockSize () const
 
uint32_t getNumBlocks () const
 
uint32_t getStreamLength () const
 
- Public Member Functions inherited from llvm::msf::ReadableStream
virtual ~ReadableStream ()=default
 

Static Public Member Functions

static std::unique_ptr
< MappedBlockStream
createStream (uint32_t BlockSize, uint32_t NumBlocks, const MSFStreamLayout &Layout, const ReadableStream &MsfData)
 
static std::unique_ptr
< MappedBlockStream
createIndexedStream (const MSFLayout &Layout, const ReadableStream &MsfData, uint32_t StreamIndex)
 
static std::unique_ptr
< MappedBlockStream
createFpmStream (const MSFLayout &Layout, const ReadableStream &MsfData)
 
static std::unique_ptr
< MappedBlockStream
createDirectoryStream (const MSFLayout &Layout, const ReadableStream &MsfData)
 

Protected Member Functions

 MappedBlockStream (uint32_t BlockSize, uint32_t NumBlocks, const MSFStreamLayout &StreamLayout, const ReadableStream &MsfData)
 

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 40 of file MappedBlockStream.h.

Constructor & Destructor Documentation

MappedBlockStream::MappedBlockStream ( uint32_t  BlockSize,
uint32_t  NumBlocks,
const MSFStreamLayout StreamLayout,
const ReadableStream MsfData 
)
protected

Definition at line 48 of file MappedBlockStream.cpp.

Member Function Documentation

std::unique_ptr< MappedBlockStream > MappedBlockStream::createDirectoryStream ( const MSFLayout Layout,
const ReadableStream MsfData 
)
static
std::unique_ptr< MappedBlockStream > MappedBlockStream::createFpmStream ( const MSFLayout Layout,
const ReadableStream MsfData 
)
static
std::unique_ptr< MappedBlockStream > MappedBlockStream::createIndexedStream ( const MSFLayout Layout,
const ReadableStream MsfData,
uint32_t  StreamIndex 
)
static
std::unique_ptr< MappedBlockStream > MappedBlockStream::createStream ( uint32_t  BlockSize,
uint32_t  NumBlocks,
const MSFStreamLayout Layout,
const ReadableStream MsfData 
)
static

Definition at line 55 of file MappedBlockStream.cpp.

Referenced by createDirectoryStream(), and createFpmStream().

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

Definition at line 66 of file MappedBlockStream.h.

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

Definition at line 70 of file MappedBlockStream.h.

References BlockSize.

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

uint32_t MappedBlockStream::getLength ( ) const
overridevirtual
uint32_t llvm::msf::MappedBlockStream::getNumBlocks ( ) const
inline
uint32_t MappedBlockStream::getNumBytesCopied ( ) const
uint32_t llvm::msf::MappedBlockStream::getStreamLength ( ) const
inline
void MappedBlockStream::invalidateCache ( )

Definition at line 282 of file MappedBlockStream.cpp.

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

Friends And Related Function Documentation

friend class WritableMappedBlockStream
friend

Definition at line 41 of file MappedBlockStream.h.


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