LLDB mainline
lldb_private::RangeDataVector< B, S, T, N, Compare > Class Template Reference

#include <RangeMap.h>

Inheritance diagram for lldb_private::RangeDataVector< B, S, T, N, Compare >:
[legend]

Public Types

typedef lldb_private::Range< B, S > Range
typedef RangeData< B, S, T > Entry
typedef AugmentedRangeData< B, S, T > AugmentedEntry
typedef llvm::SmallVector< AugmentedEntry, N > Collection
using const_iterator = typename Collection::const_iterator

Public Member Functions

 RangeDataVector (Compare compare=Compare())
 ~RangeDataVector ()=default
void Append (const Entry &entry)
void Append (B &&b, S &&s, T &&t)
 Append a range with data to the vector.
bool Erase (uint32_t start, uint32_t end)
void Sort ()
void CombineConsecutiveEntriesWithEqualData ()
void Clear ()
bool IsEmpty () const
size_t GetSize () const
const EntryGetEntryAtIndex (size_t i) const
EntryGetMutableEntryAtIndex (size_t i)
EntryGetEntryRef (size_t i)
const EntryGetEntryRef (size_t i) const
uint32_t FindEntryIndexThatContains (B addr) const
uint32_t FindEntryIndexesThatContain (B addr, std::vector< uint32_t > &indexes)
EntryFindEntryThatContains (B addr)
const EntryFindEntryThatContains (B addr) const
const EntryFindEntryThatContains (const Entry &range) const
const EntryFindEntryStartsAt (B addr) const
const EntryFindEntryThatContainsOrFollows (B addr) const
uint32_t FindEntryIndexThatContainsOrFollows (B addr) const
EntryBack ()
const EntryBack () const
const_iterator begin () const
const_iterator end () const

Static Public Member Functions

static bool BaseLessThan (const Entry &lhs, const Entry &rhs)

Protected Attributes

Collection m_entries
Compare m_compare

Private Member Functions

B ComputeUpperBounds (size_t lo, size_t hi)
void FindEntryIndexesThatContain (B addr, size_t lo, size_t hi, std::vector< uint32_t > &indexes)

Detailed Description

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
class lldb_private::RangeDataVector< B, S, T, N, Compare >

Definition at line 459 of file RangeMap.h.

Member Typedef Documentation

◆ AugmentedEntry

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
typedef AugmentedRangeData<B, S, T> lldb_private::RangeDataVector< B, S, T, N, Compare >::AugmentedEntry

Definition at line 463 of file RangeMap.h.

◆ Collection

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
typedef llvm::SmallVector<AugmentedEntry, N> lldb_private::RangeDataVector< B, S, T, N, Compare >::Collection

Definition at line 464 of file RangeMap.h.

◆ const_iterator

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
using lldb_private::RangeDataVector< B, S, T, N, Compare >::const_iterator = typename Collection::const_iterator

Definition at line 668 of file RangeMap.h.

◆ Entry

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
typedef RangeData<B, S, T> lldb_private::RangeDataVector< B, S, T, N, Compare >::Entry

Definition at line 462 of file RangeMap.h.

◆ Range

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
typedef lldb_private::Range<B, S> lldb_private::RangeDataVector< B, S, T, N, Compare >::Range

Definition at line 461 of file RangeMap.h.

Constructor & Destructor Documentation

◆ RangeDataVector()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
lldb_private::RangeDataVector< B, S, T, N, Compare >::RangeDataVector ( Compare compare = Compare())
inline

Definition at line 466 of file RangeMap.h.

◆ ~RangeDataVector()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
lldb_private::RangeDataVector< B, S, T, N, Compare >::~RangeDataVector ( )
default

Member Function Documentation

◆ Append() [1/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::Append ( B && b,
S && s,
T && t )
inline

Append a range with data to the vector.

Parameters
BThe base of the memory range
SThe size of the memory range
TThe data associated with the memory range

Definition at line 476 of file RangeMap.h.

◆ Append() [2/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::Append ( const Entry & entry)
inline

◆ Back() [1/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::Back ( )
inline

Definition at line 662 of file RangeMap.h.

◆ Back() [2/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::Back ( ) const
inline

Definition at line 664 of file RangeMap.h.

◆ BaseLessThan()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
bool lldb_private::RangeDataVector< B, S, T, N, Compare >::BaseLessThan ( const Entry & lhs,
const Entry & rhs )
inlinestatic

Definition at line 557 of file RangeMap.h.

◆ begin()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const_iterator lldb_private::RangeDataVector< B, S, T, N, Compare >::begin ( ) const
inline

◆ Clear()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::Clear ( )
inline

Definition at line 538 of file RangeMap.h.

Referenced by lldb_private::npdb::SymbolFileNativePDB::ParseLineTable().

◆ CombineConsecutiveEntriesWithEqualData()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::CombineConsecutiveEntriesWithEqualData ( )
inline

Definition at line 511 of file RangeMap.h.

◆ ComputeUpperBounds()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
B lldb_private::RangeDataVector< B, S, T, N, Compare >::ComputeUpperBounds ( size_t lo,
size_t hi )
inlineprivate

◆ end()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const_iterator lldb_private::RangeDataVector< B, S, T, N, Compare >::end ( ) const
inline

Definition at line 670 of file RangeMap.h.

◆ Erase()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
bool lldb_private::RangeDataVector< B, S, T, N, Compare >::Erase ( uint32_t start,
uint32_t end )
inline

Definition at line 478 of file RangeMap.h.

◆ FindEntryIndexesThatContain() [1/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain ( B addr,
size_t lo,
size_t hi,
std::vector< uint32_t > & indexes )
inlineprivate

Definition at line 697 of file RangeMap.h.

◆ FindEntryIndexesThatContain() [2/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
uint32_t lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain ( B addr,
std::vector< uint32_t > & indexes )
inline

◆ FindEntryIndexThatContains()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
uint32_t lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContains ( B addr) const
inline

Definition at line 561 of file RangeMap.h.

◆ FindEntryIndexThatContainsOrFollows()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
uint32_t lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContainsOrFollows ( B addr) const
inline

Definition at line 651 of file RangeMap.h.

◆ FindEntryStartsAt()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryStartsAt ( B addr) const
inline

Definition at line 608 of file RangeMap.h.

◆ FindEntryThatContains() [1/3]

◆ FindEntryThatContains() [2/3]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains ( B addr) const
inline

Definition at line 585 of file RangeMap.h.

◆ FindEntryThatContains() [3/3]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains ( const Entry & range) const
inline

Definition at line 589 of file RangeMap.h.

◆ FindEntryThatContainsOrFollows()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContainsOrFollows ( B addr) const
inline

◆ GetEntryAtIndex()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::GetEntryAtIndex ( size_t i) const
inline

◆ GetEntryRef() [1/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
Entry & lldb_private::RangeDataVector< B, S, T, N, Compare >::GetEntryRef ( size_t i)
inline

◆ GetEntryRef() [2/2]

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
const Entry & lldb_private::RangeDataVector< B, S, T, N, Compare >::GetEntryRef ( size_t i) const
inline

Definition at line 555 of file RangeMap.h.

◆ GetMutableEntryAtIndex()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
Entry * lldb_private::RangeDataVector< B, S, T, N, Compare >::GetMutableEntryAtIndex ( size_t i)
inline

Definition at line 548 of file RangeMap.h.

◆ GetSize()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
size_t lldb_private::RangeDataVector< B, S, T, N, Compare >::GetSize ( ) const
inline

◆ IsEmpty()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
bool lldb_private::RangeDataVector< B, S, T, N, Compare >::IsEmpty ( ) const
inline

◆ Sort()

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
void lldb_private::RangeDataVector< B, S, T, N, Compare >::Sort ( )
inline

Member Data Documentation

◆ m_compare

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
Compare lldb_private::RangeDataVector< B, S, T, N, Compare >::m_compare
protected

Definition at line 674 of file RangeMap.h.

◆ m_entries

template<typename B, typename S, typename T, unsigned N = 0, class Compare = std::less<T>>
Collection lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries
protected

Definition at line 673 of file RangeMap.h.


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