LLVM  4.0.0
Public Member Functions | List of all members
llvm::msf::SequencedItemStream< T, Traits > Class Template Reference

SequencedItemStream represents a sequence of objects stored in a standard container but for which it is useful to view as a stream of contiguous bytes. More...

#include <SequencedItemStream.h>

Inheritance diagram for llvm::msf::SequencedItemStream< T, Traits >:
[legend]
Collaboration diagram for llvm::msf::SequencedItemStream< T, Traits >:
[legend]

Public Member Functions

 SequencedItemStream ()=default
 
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
 
void setItems (ArrayRef< T > ItemArray)
 
uint32_t getLength () const override
 
- Public Member Functions inherited from llvm::msf::ReadableStream
virtual ~ReadableStream ()=default
 

Detailed Description

template<typename T, typename Traits = SequencedItemTraits<T>>
class llvm::msf::SequencedItemStream< T, Traits >

SequencedItemStream represents a sequence of objects stored in a standard container but for which it is useful to view as a stream of contiguous bytes.

An example of this might be if you have a std::vector of TPI records, where each record contains a byte sequence that represents that one record serialized, but where each consecutive item might not be allocated immediately after the previous item. Using a SequencedItemStream, we can adapt the VarStreamArray class to trivially extract one item at a time, allowing the data to be used anywhere a VarStreamArray could be used.

Definition at line 38 of file SequencedItemStream.h.

Constructor & Destructor Documentation

template<typename T, typename Traits = SequencedItemTraits<T>>
llvm::msf::SequencedItemStream< T, Traits >::SequencedItemStream ( )
default

Member Function Documentation

template<typename T, typename Traits = SequencedItemTraits<T>>
uint32_t llvm::msf::SequencedItemStream< T, Traits >::getLength ( ) const
inlineoverridevirtual
template<typename T, typename Traits = SequencedItemTraits<T>>
Error llvm::msf::SequencedItemStream< T, Traits >::readBytes ( uint32_t  Offset,
uint32_t  Size,
ArrayRef< uint8_t > &  Buffer 
) const
inlineoverridevirtual

Implements llvm::msf::ReadableStream.

Definition at line 42 of file SequencedItemStream.h.

template<typename T, typename Traits = SequencedItemTraits<T>>
Error llvm::msf::SequencedItemStream< T, Traits >::readLongestContiguousChunk ( uint32_t  Offset,
ArrayRef< uint8_t > &  Buffer 
) const
inlineoverridevirtual

Implements llvm::msf::ReadableStream.

Definition at line 54 of file SequencedItemStream.h.

template<typename T, typename Traits = SequencedItemTraits<T>>
void llvm::msf::SequencedItemStream< T, Traits >::setItems ( ArrayRef< T ItemArray)
inline

Definition at line 63 of file SequencedItemStream.h.

Referenced by llvm::pdb::TpiStreamBuilder::addTypeRecord().


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