Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent > Struct Template Reference

Common functionality to all chunked worklists. More...

#include <Chunked.h>

List of all members.

Classes

class  Chunk
struct  p
struct  rethread
struct  retype
struct  with_chunk_size

Public Types

typedef T value_type

Public Member Functions

 ChunkedMaster ()
void flush ()
template<typename... Args>
value_typeemplace (Args &&...args)
 Construct an item on the worklist and return a pointer to its value.
value_typepeek ()
 Return pointer to next value to be returned by pop.
void pop_peeked ()
 Remove the value returned from peek() from the worklist.
void push (const value_type &val)
template<typename Iter >
void push (Iter b, Iter e)
template<typename RangeTy >
void push_initial (const RangeTy &range)
Galois::optional< value_typepop ()

Private Types

typedef QT< Chunk, Concurrent > LevelItem

Private Member Functions

ChunkmkChunk ()
void delChunk (Chunk *C)
void pushChunk (Chunk *C)
ChunkpopChunkByID (unsigned int i)
ChunkpopChunk ()
template<typename... Args>
T * emplacei (p &n, Args &&...args)

Private Attributes

Runtime::MM::FixedSizeAllocator heap
squeue< Concurrent,
Runtime::PerThreadStorage, p
data
squeue< Distributed,
Runtime::PerPackageStorage,
LevelItem
Q

Detailed Description

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
struct Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >

Common functionality to all chunked worklists.


Member Typedef Documentation

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
typedef QT<Chunk, Concurrent> Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::LevelItem [private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
typedef T Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::value_type

Constructor & Destructor Documentation

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::ChunkedMaster (  )  [inline]

Member Function Documentation

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::delChunk ( Chunk C  )  [inline, private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
template<typename... Args>
value_type* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::emplace ( Args &&...  args  )  [inline]

Construct an item on the worklist and return a pointer to its value.

This pointer facilitates some internal runtime uses and is not designed to be used by general clients. The address is generally not safe to use in the presence of concurrent pops.

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
template<typename... Args>
T* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::emplacei ( p n,
Args &&...  args 
) [inline, private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::flush (  )  [inline]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Chunk* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::mkChunk (  )  [inline, private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
value_type* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::peek (  )  [inline]

Return pointer to next value to be returned by pop.

For internal runtime use.

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Galois::optional<value_type> Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::pop (  )  [inline]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::pop_peeked (  )  [inline]

Remove the value returned from peek() from the worklist.

For internal runtime use.

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Chunk* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::popChunk (  )  [inline, private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Chunk* Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::popChunkByID ( unsigned int  i  )  [inline, private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
template<typename Iter >
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::push ( Iter  b,
Iter  e 
) [inline]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::push ( const value_type val  )  [inline]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
template<typename RangeTy >
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::push_initial ( const RangeTy &  range  )  [inline]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
void Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::pushChunk ( Chunk C  )  [inline, private]

Member Data Documentation

template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
squeue<Concurrent, Runtime::PerThreadStorage, p> Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::data [private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
Runtime::MM::FixedSizeAllocator Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::heap [private]
template<typename T, template< typename, bool > class QT, bool Distributed, bool IsStack, int ChunkSize, bool Concurrent>
squeue<Distributed, Runtime::PerPackageStorage, LevelItem> Galois::WorkList::ChunkedMaster< T, QT, Distributed, IsStack, ChunkSize, Concurrent >::Q [private]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1