Galois::InsertBag< T, BlockSize > Class Template Reference

Bag for only concurrent insertions. More...

#include <Bag.h>

List of all members.

Classes

struct  header
class  Iterator

Public Types

typedef T value_type
typedef const T & const_reference
typedef T & reference
typedef Iterator< T > iterator
typedef Iterator< const T > const_iterator
typedef iterator local_iterator

Public Member Functions

 InsertBag ()
 ~InsertBag ()
void clear ()
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
local_iterator local_begin ()
local_iterator local_end ()
bool empty () const
template<typename... Args>
reference emplace (Args &&...args)
 Thread safe bag insertion.
reference push (const T &val)
 Thread safe bag insertion.
reference push (T &&val)
 Thread safe bag insertion.
reference push_back (const T &val)
 Thread safe bag insertion.
reference push_back (T &&val)
 Thread safe bag insertion.

Private Member Functions

void insHeader (header *h)
headernewHeaderFromAllocator (void *m, unsigned size)
headernewHeader ()
void destruct ()

Private Attributes

Galois::Runtime::MM::FixedSizeAllocator heap
Galois::Runtime::PerThreadStorage
< std::pair< header *, header * > > 
heads

Detailed Description

template<typename T, unsigned int BlockSize = 0>
class Galois::InsertBag< T, BlockSize >

Bag for only concurrent insertions.

This data structure supports scalable concurrent pushes but reading the bag can only be done serially.


Member Typedef Documentation

template<typename T, unsigned int BlockSize = 0>
typedef Iterator<const T> Galois::InsertBag< T, BlockSize >::const_iterator
template<typename T, unsigned int BlockSize = 0>
typedef const T& Galois::InsertBag< T, BlockSize >::const_reference
template<typename T, unsigned int BlockSize = 0>
typedef Iterator<T> Galois::InsertBag< T, BlockSize >::iterator
template<typename T, unsigned int BlockSize = 0>
typedef iterator Galois::InsertBag< T, BlockSize >::local_iterator
template<typename T, unsigned int BlockSize = 0>
typedef T& Galois::InsertBag< T, BlockSize >::reference
template<typename T, unsigned int BlockSize = 0>
typedef T Galois::InsertBag< T, BlockSize >::value_type

Constructor & Destructor Documentation

template<typename T, unsigned int BlockSize = 0>
Galois::InsertBag< T, BlockSize >::InsertBag (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
Galois::InsertBag< T, BlockSize >::~InsertBag (  )  [inline]

Member Function Documentation

template<typename T, unsigned int BlockSize = 0>
const_iterator Galois::InsertBag< T, BlockSize >::begin (  )  const [inline]
template<typename T, unsigned int BlockSize = 0>
iterator Galois::InsertBag< T, BlockSize >::begin (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
void Galois::InsertBag< T, BlockSize >::clear (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
void Galois::InsertBag< T, BlockSize >::destruct (  )  [inline, private]
template<typename T, unsigned int BlockSize = 0>
template<typename... Args>
reference Galois::InsertBag< T, BlockSize >::emplace ( Args &&...  args  )  [inline]

Thread safe bag insertion.

template<typename T, unsigned int BlockSize = 0>
bool Galois::InsertBag< T, BlockSize >::empty (  )  const [inline]
template<typename T, unsigned int BlockSize = 0>
const_iterator Galois::InsertBag< T, BlockSize >::end (  )  const [inline]
template<typename T, unsigned int BlockSize = 0>
iterator Galois::InsertBag< T, BlockSize >::end (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
void Galois::InsertBag< T, BlockSize >::insHeader ( header h  )  [inline, private]
template<typename T, unsigned int BlockSize = 0>
local_iterator Galois::InsertBag< T, BlockSize >::local_begin (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
local_iterator Galois::InsertBag< T, BlockSize >::local_end (  )  [inline]
template<typename T, unsigned int BlockSize = 0>
header* Galois::InsertBag< T, BlockSize >::newHeader (  )  [inline, private]
template<typename T, unsigned int BlockSize = 0>
header* Galois::InsertBag< T, BlockSize >::newHeaderFromAllocator ( void *  m,
unsigned  size 
) [inline, private]
template<typename T, unsigned int BlockSize = 0>
reference Galois::InsertBag< T, BlockSize >::push ( T &&  val  )  [inline]

Thread safe bag insertion.

template<typename T, unsigned int BlockSize = 0>
reference Galois::InsertBag< T, BlockSize >::push ( const T &  val  )  [inline]

Thread safe bag insertion.

template<typename T, unsigned int BlockSize = 0>
reference Galois::InsertBag< T, BlockSize >::push_back ( T &&  val  )  [inline]

Thread safe bag insertion.

template<typename T, unsigned int BlockSize = 0>
reference Galois::InsertBag< T, BlockSize >::push_back ( const T &  val  )  [inline]

Thread safe bag insertion.


Member Data Documentation

template<typename T, unsigned int BlockSize = 0>
Galois::Runtime::PerThreadStorage<std::pair<header*,header*> > Galois::InsertBag< T, BlockSize >::heads [private]
template<typename T, unsigned int BlockSize = 0>
Galois::Runtime::MM::FixedSizeAllocator Galois::InsertBag< T, BlockSize >::heap [private]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1