Galois::ThreadSafeOrderedSet< T, Cmp, Alloc > Class Template Reference

Thread-safe ordered set. More...

#include <PriorityQueue.h>

List of all members.

Public Types

typedef Set container_type
typedef container_type::value_type value_type
typedef container_type::reference reference
typedef
container_type::const_reference 
const_reference
typedef container_type::pointer pointer
typedef container_type::size_type size_type
typedef
container_type::const_iterator 
iterator
typedef
container_type::const_iterator 
const_iterator
typedef
container_type::const_reverse_iterator 
reverse_iterator
typedef
container_type::const_reverse_iterator 
const_reverse_iterator
typedef
Galois::Runtime::LL::SimpleLock
< true > 
Lock_ty

Public Member Functions

 ThreadSafeOrderedSet (const Cmp &cmp=Cmp(), const Alloc &alloc=Alloc())
template<typename Iter >
 ThreadSafeOrderedSet (Iter b, Iter e, const Cmp &cmp=Cmp(), const Alloc &alloc=Alloc())
bool empty () const
size_type size () const
value_type top () const
bool find (const value_type &x) const
void push (const value_type &x)
value_type pop ()
bool remove (const value_type &x)
const_iterator begin () const
const_iterator end () const

Private Types

typedef std::set< T, Cmp, Alloc > Set

Private Attributes

GALOIS_ATTRIBUTE_ALIGN_CACHE_LINE
Lock_ty 
mutex
Set orderedSet

Detailed Description

template<typename T, typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
class Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >

Thread-safe ordered set.

Faster than STL heap operations (about 10-15% faster on serially) and can use scalable allocation, e.g., GFixedAllocator.


Member Typedef Documentation

template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::const_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::const_iterator
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::const_reference Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::const_reference
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::const_reverse_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::const_reverse_iterator
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef Set Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::container_type
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::const_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::iterator
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef Galois::Runtime::LL::SimpleLock<true> Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::Lock_ty
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::pointer Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::pointer
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::reference Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::reference
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::const_reverse_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::reverse_iterator
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef std::set<T, Cmp, Alloc> Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::Set [private]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::size_type Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::size_type
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
typedef container_type::value_type Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::value_type

Constructor & Destructor Documentation

template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::ThreadSafeOrderedSet ( const Cmp &  cmp = Cmp(),
const Alloc &  alloc = Alloc() 
) [inline, explicit]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
template<typename Iter >
Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::ThreadSafeOrderedSet ( Iter  b,
Iter  e,
const Cmp &  cmp = Cmp(),
const Alloc &  alloc = Alloc() 
) [inline]

Member Function Documentation

template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
const_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::begin (  )  const [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
bool Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::empty (  )  const [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
const_iterator Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::end (  )  const [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
bool Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::find ( const value_type x  )  const [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
value_type Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::pop (  )  [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
void Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::push ( const value_type x  )  [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
bool Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::remove ( const value_type x  )  [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
size_type Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::size (  )  const [inline]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
value_type Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::top (  )  const [inline]

Member Data Documentation

template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
GALOIS_ATTRIBUTE_ALIGN_CACHE_LINE Lock_ty Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::mutex [private]
template<typename T , typename Cmp = std::less<T>, typename Alloc = Galois::GFixedAllocator<T>>
Set Galois::ThreadSafeOrderedSet< T, Cmp, Alloc >::orderedSet [private]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1