Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::IntrusivePriorityList< T, PT,,, LT > Class Template Reference

#include <lists.h>

Public Types

typedef T ITEMTYPE
 
typedef PT PRITYPE
 
typedef LT LOCKTYPE
 

Public Member Functions

 IntrusivePriorityList (void)
 
 ~IntrusivePriorityList (void)
 
 IntrusivePriorityList (const IntrusivePriorityList< T, PT, LINK, PRI, LT > &copy_from)
 
IntrusivePriorityList< T, PT, LINK, PRI, LT > & operator= (const IntrusivePriorityList< T, PT, LINK, PRI, LT > &copy_from)
 
template<typename LT2 >
void swap (IntrusivePriorityList< T, PT, LINK, PRI, LT2 > &swap_with)
 
template<typename LT2 >
void absorb_append (IntrusivePriorityList< T, PT, LINK, PRI, LT2 > &take_from)
 
void push_back (T *new_entry)
 
void push_front (T *new_entry)
 
bool empty (void) const
 
bool empty (PT min_priority) const
 
T * front (void) const
 
T * pop_front (void)
 
T * pop_front (PT min_priority)
 
template<typename CALLABLE >
void foreach (CALLABLE &cb)
 
size_t size (void) const
 

Public Attributes

LT lock
 
T * head
 

Member Typedef Documentation

◆ ITEMTYPE

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
typedef T Realm::IntrusivePriorityList< T, PT,,, LT >::ITEMTYPE

◆ LOCKTYPE

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
typedef LT Realm::IntrusivePriorityList< T, PT,,, LT >::LOCKTYPE

◆ PRITYPE

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
typedef PT Realm::IntrusivePriorityList< T, PT,,, LT >::PRITYPE

Constructor & Destructor Documentation

◆ IntrusivePriorityList() [1/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
Realm::IntrusivePriorityList< T, PT,,, LT >::IntrusivePriorityList ( void  )

◆ ~IntrusivePriorityList()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
Realm::IntrusivePriorityList< T, PT,,, LT >::~IntrusivePriorityList ( void  )

◆ IntrusivePriorityList() [2/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
Realm::IntrusivePriorityList< T, PT,,, LT >::IntrusivePriorityList ( const IntrusivePriorityList< T, PT, LINK, PRI, LT > &  copy_from)

Member Function Documentation

◆ absorb_append()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
template<typename LT2 >
void Realm::IntrusivePriorityList< T, PT,,, LT >::absorb_append ( IntrusivePriorityList< T, PT, LINK, PRI, LT2 > &  take_from)

◆ empty() [1/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
bool Realm::IntrusivePriorityList< T, PT,,, LT >::empty ( PT  min_priority) const

◆ empty() [2/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
bool Realm::IntrusivePriorityList< T, PT,,, LT >::empty ( void  ) const

◆ foreach()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
template<typename CALLABLE >
void Realm::IntrusivePriorityList< T, PT,,, LT >::foreach ( CALLABLE &  cb)

◆ front()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
T * Realm::IntrusivePriorityList< T, PT,,, LT >::front ( void  ) const

◆ operator=()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
IntrusivePriorityList< T, PT, LINK, PRI, LT > & Realm::IntrusivePriorityList< T, PT,,, LT >::operator= ( const IntrusivePriorityList< T, PT, LINK, PRI, LT > &  copy_from)

◆ pop_front() [1/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
T * Realm::IntrusivePriorityList< T, PT,,, LT >::pop_front ( PT  min_priority)

◆ pop_front() [2/2]

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
T * Realm::IntrusivePriorityList< T, PT,,, LT >::pop_front ( void  )

◆ push_back()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
void Realm::IntrusivePriorityList< T, PT,,, LT >::push_back ( T *  new_entry)

◆ push_front()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
void Realm::IntrusivePriorityList< T, PT,,, LT >::push_front ( T *  new_entry)

◆ size()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
size_t Realm::IntrusivePriorityList< T, PT,,, LT >::size ( void  ) const

◆ swap()

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
template<typename LT2 >
void Realm::IntrusivePriorityList< T, PT,,, LT >::swap ( IntrusivePriorityList< T, PT, LINK, PRI, LT2 > &  swap_with)

Member Data Documentation

◆ head

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
T* Realm::IntrusivePriorityList< T, PT,,, LT >::head

◆ lock

template<typename T , typename PT , REALM_PMTA_DECL(T, IntrusivePriorityListLink< T >, LINK) , REALM_PMTA_DECL(T, PT, PRI) , typename LT >
LT Realm::IntrusivePriorityList< T, PT,,, LT >::lock
mutable

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