Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
galois::worklists::StableIterator< Steal, Container, Iterator > Struct Template Reference

Low-overhead worklist when initial range is not invalidated by the operator. More...

#include <StableIterator.h>

Classes

struct  with_container
 
struct  with_iterator
 
struct  with_steal
 

Public Types

typedef std::iterator_traits
< Iterator >::value_type 
value_type
 
typedef Iterator iterator
 
template<typename _T >
using retype = StableIterator< Steal, typename Container::template retype< _T >, Iterator >
 change the type the worklist holds More...
 
template<bool b>
using rethread = StableIterator< Steal, typename Container::template rethread< b >, Iterator >
 

Public Member Functions

template<typename RangeTy >
void push_initial (const RangeTy &r)
 push initial range onto the queue called with the same b and e on each thread More...
 
galois::optional< value_typepop ()
 pop a value from the queue. More...
 
void push (const value_type &val)
 
template<typename Iter >
void push (Iter b, Iter e)
 

Detailed Description

template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
struct galois::worklists::StableIterator< Steal, Container, Iterator >

Low-overhead worklist when initial range is not invalidated by the operator.

Template Parameters
StealTry workstealing on initial ranges
ContainerWorklist to manage work enqueued by the operator
Iterator(inferred by library)

Member Typedef Documentation

template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
typedef Iterator galois::worklists::StableIterator< Steal, Container, Iterator >::iterator
template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
template<bool b>
using galois::worklists::StableIterator< Steal, Container, Iterator >::rethread = StableIterator<Steal, typename Container::template rethread<b>, Iterator>
template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
template<typename _T >
using galois::worklists::StableIterator< Steal, Container, Iterator >::retype = StableIterator<Steal, typename Container::template retype<_T>, Iterator>

change the type the worklist holds

template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
typedef std::iterator_traits<Iterator>::value_type galois::worklists::StableIterator< Steal, Container, Iterator >::value_type

Member Function Documentation

template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
galois::optional<value_type> galois::worklists::StableIterator< Steal, Container, Iterator >::pop ( void  )
inline

pop a value from the queue.

template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
void galois::worklists::StableIterator< Steal, Container, Iterator >::push ( const value_type val)
inline
template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
template<typename Iter >
void galois::worklists::StableIterator< Steal, Container, Iterator >::push ( Iter  b,
Iter  e 
)
inline
template<bool Steal = false, typename Container = PerSocketChunkFIFO<>, typename Iterator = int*>
template<typename RangeTy >
void galois::worklists::StableIterator< Steal, Container, Iterator >::push_initial ( const RangeTy &  r)
inline

push initial range onto the queue called with the same b and e on each thread


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