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 (std::initializer_list< AugmentedEntry > entries, 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 672 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() [1/2]

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() [2/2]

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

Definition at line 468 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 480 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 666 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 668 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 561 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 542 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 515 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 674 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 482 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 701 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 565 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 655 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 612 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 589 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 593 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 559 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 552 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 678 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 677 of file RangeMap.h.


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