LLVM 20.0.0git
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::BinaryStreamRefBase< RefType, StreamType > Class Template Reference

Common stuff for mutable and immutable StreamRefs. More...

#include "llvm/Support/BinaryStreamRef.h"

Inheritance diagram for llvm::BinaryStreamRefBase< RefType, StreamType >:
Inheritance graph
[legend]

Public Member Functions

llvm::endianness getEndian () const
 
uint64_t getLength () const
 
RefType drop_front (uint64_t N) const
 Return a new BinaryStreamRef with the first N elements removed.
 
RefType drop_back (uint64_t N) const
 Return a new BinaryStreamRef with the last N elements removed.
 
RefType keep_front (uint64_t N) const
 Return a new BinaryStreamRef with only the first N elements remaining.
 
RefType keep_back (uint64_t N) const
 Return a new BinaryStreamRef with only the last N elements remaining.
 
RefType drop_symmetric (uint64_t N) const
 Return a new BinaryStreamRef with the first and last N elements removed.
 
RefType slice (uint64_t Offset, uint64_t Len) const
 Return a new BinaryStreamRef with the first Offset elements removed, and retaining exactly Len elements.
 
bool valid () const
 

Protected Member Functions

 BinaryStreamRefBase ()=default
 
 BinaryStreamRefBase (StreamType &BorrowedImpl)
 
 BinaryStreamRefBase (std::shared_ptr< StreamType > SharedImpl, uint64_t Offset, std::optional< uint64_t > Length)
 
 BinaryStreamRefBase (StreamType &BorrowedImpl, uint64_t Offset, std::optional< uint64_t > Length)
 
 BinaryStreamRefBase (const BinaryStreamRefBase &Other)=default
 
BinaryStreamRefBaseoperator= (const BinaryStreamRefBase &Other)=default
 
BinaryStreamRefBaseoperator= (BinaryStreamRefBase &&Other)=default
 
 BinaryStreamRefBase (BinaryStreamRefBase &&Other)=default
 
Error checkOffsetForRead (uint64_t Offset, uint64_t DataSize) const
 

Protected Attributes

std::shared_ptr< StreamType > SharedImpl
 
StreamType * BorrowedImpl = nullptr
 
uint64_t ViewOffset = 0
 
std::optional< uint64_tLength
 

Friends

bool operator== (const RefType &LHS, const RefType &RHS)
 

Detailed Description

template<class RefType, class StreamType>
class llvm::BinaryStreamRefBase< RefType, StreamType >

Common stuff for mutable and immutable StreamRefs.

Definition at line 23 of file BinaryStreamRef.h.

Constructor & Destructor Documentation

◆ BinaryStreamRefBase() [1/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( )
protecteddefault

◆ BinaryStreamRefBase() [2/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( StreamType &  BorrowedImpl)
inlineexplicitprotected

◆ BinaryStreamRefBase() [3/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( std::shared_ptr< StreamType >  SharedImpl,
uint64_t  Offset,
std::optional< uint64_t Length 
)
inlineprotected

Definition at line 32 of file BinaryStreamRef.h.

◆ BinaryStreamRefBase() [4/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( StreamType &  BorrowedImpl,
uint64_t  Offset,
std::optional< uint64_t Length 
)
inlineprotected

Definition at line 36 of file BinaryStreamRef.h.

◆ BinaryStreamRefBase() [5/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( const BinaryStreamRefBase< RefType, StreamType > &  Other)
protecteddefault

◆ BinaryStreamRefBase() [6/6]

template<class RefType , class StreamType >
llvm::BinaryStreamRefBase< RefType, StreamType >::BinaryStreamRefBase ( BinaryStreamRefBase< RefType, StreamType > &&  Other)
protecteddefault

Member Function Documentation

◆ checkOffsetForRead()

template<class RefType , class StreamType >
Error llvm::BinaryStreamRefBase< RefType, StreamType >::checkOffsetForRead ( uint64_t  Offset,
uint64_t  DataSize 
) const
inlineprotected

◆ drop_back()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::drop_back ( uint64_t  N) const
inline

Return a new BinaryStreamRef with the last N elements removed.

If this BinaryStreamRef is length-tracking and N is greater than 0, then this BinaryStreamRef will no longer length-track.

Definition at line 76 of file BinaryStreamRef.h.

References llvm::BinaryStreamRefBase< RefType, StreamType >::BorrowedImpl, llvm::BinaryStreamRefBase< RefType, StreamType >::getLength(), and N.

Referenced by llvm::BinaryStreamRefBase< RefType, StreamType >::keep_front().

◆ drop_front()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::drop_front ( uint64_t  N) const
inline

◆ drop_symmetric()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::drop_symmetric ( uint64_t  N) const
inline

Return a new BinaryStreamRef with the first and last N elements removed.

Definition at line 109 of file BinaryStreamRef.h.

References llvm::BinaryStreamRefBase< RefType, StreamType >::drop_front(), and N.

◆ getEndian()

template<class RefType , class StreamType >
llvm::endianness llvm::BinaryStreamRefBase< RefType, StreamType >::getEndian ( ) const
inline

◆ getLength()

template<class RefType , class StreamType >
uint64_t llvm::BinaryStreamRefBase< RefType, StreamType >::getLength ( ) const
inline

◆ keep_back()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::keep_back ( uint64_t  N) const
inline

◆ keep_front()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::keep_front ( uint64_t  N) const
inline

◆ operator=() [1/2]

template<class RefType , class StreamType >
BinaryStreamRefBase & llvm::BinaryStreamRefBase< RefType, StreamType >::operator= ( BinaryStreamRefBase< RefType, StreamType > &&  Other)
protecteddefault

◆ operator=() [2/2]

template<class RefType , class StreamType >
BinaryStreamRefBase & llvm::BinaryStreamRefBase< RefType, StreamType >::operator= ( const BinaryStreamRefBase< RefType, StreamType > &  Other)
protecteddefault

◆ slice()

template<class RefType , class StreamType >
RefType llvm::BinaryStreamRefBase< RefType, StreamType >::slice ( uint64_t  Offset,
uint64_t  Len 
) const
inline

Return a new BinaryStreamRef with the first Offset elements removed, and retaining exactly Len elements.

Definition at line 115 of file BinaryStreamRef.h.

References llvm::BinaryStreamRefBase< RefType, StreamType >::drop_front(), and llvm::Offset.

Referenced by llvm::BinaryStreamReader::readStreamRef(), llvm::BinarySubstreamRef::slice(), and llvm::VarStreamArray< ValueType, Extractor >::substream().

◆ valid()

template<class RefType , class StreamType >
bool llvm::BinaryStreamRefBase< RefType, StreamType >::valid ( ) const
inline

Friends And Related Function Documentation

◆ operator==

template<class RefType , class StreamType >
bool operator== ( const RefType &  LHS,
const RefType &  RHS 
)
friend

Definition at line 121 of file BinaryStreamRef.h.

Member Data Documentation

◆ BorrowedImpl

template<class RefType , class StreamType >
StreamType* llvm::BinaryStreamRefBase< RefType, StreamType >::BorrowedImpl = nullptr
protected

◆ Length

template<class RefType , class StreamType >
std::optional<uint64_t> llvm::BinaryStreamRefBase< RefType, StreamType >::Length
protected

◆ SharedImpl

template<class RefType , class StreamType >
std::shared_ptr<StreamType> llvm::BinaryStreamRefBase< RefType, StreamType >::SharedImpl
protected

Definition at line 140 of file BinaryStreamRef.h.

◆ ViewOffset

template<class RefType , class StreamType >
uint64_t llvm::BinaryStreamRefBase< RefType, StreamType >::ViewOffset = 0
protected

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