Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
galois::InsertBag< T, BlockSize > Class Template Reference

Unordered collection of elements. More...

#include <Bag.h>

Classes

class  Iterator
 

Public Types

typedef T value_type
 
typedef T * pointer
 
typedef const T * const_pointer
 
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 (InsertBag &&o)
 
InsertBagoperator= (InsertBag &&o)
 
 InsertBag (const InsertBag &)=delete
 
InsertBagoperator= (const InsertBag &)=delete
 
 ~InsertBag ()
 
void clear ()
 
void clear_serial ()
 
void swap (InsertBag &o)
 
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. More...
 
template<typename... Args>
reference emplace_back (Args &&...args)
 
void pop ()
 Pop the last element pushed by this thread. More...
 
template<typename ItemTy >
reference push (ItemTy &&val)
 Thread safe bag insertion. More...
 
template<typename ItemTy >
reference push_back (ItemTy &&val)
 Thread safe bag insertion. More...
 

Detailed Description

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

Unordered collection of elements.

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_pointer
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 >::pointer
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 ( InsertBag< T, BlockSize > &&  o)
inline
template<typename T, unsigned int BlockSize = 0>
galois::InsertBag< T, BlockSize >::InsertBag ( const InsertBag< T, BlockSize > &  )
delete
template<typename T, unsigned int BlockSize = 0>
galois::InsertBag< T, BlockSize >::~InsertBag ( )
inline

Member Function Documentation

template<typename T, unsigned int BlockSize = 0>
iterator galois::InsertBag< T, BlockSize >::begin ( )
inline
template<typename T, unsigned int BlockSize = 0>
const_iterator galois::InsertBag< T, BlockSize >::begin ( ) const
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 >::clear_serial ( )
inline
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>
template<typename... Args>
reference galois::InsertBag< T, BlockSize >::emplace_back ( Args &&...  args)
inline
template<typename T, unsigned int BlockSize = 0>
bool galois::InsertBag< T, BlockSize >::empty ( ) const
inline
template<typename T, unsigned int BlockSize = 0>
iterator galois::InsertBag< T, BlockSize >::end ( )
inline
template<typename T, unsigned int BlockSize = 0>
const_iterator galois::InsertBag< T, BlockSize >::end ( ) const
inline
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>
InsertBag& galois::InsertBag< T, BlockSize >::operator= ( InsertBag< T, BlockSize > &&  o)
inline
template<typename T, unsigned int BlockSize = 0>
InsertBag& galois::InsertBag< T, BlockSize >::operator= ( const InsertBag< T, BlockSize > &  )
delete
template<typename T, unsigned int BlockSize = 0>
void galois::InsertBag< T, BlockSize >::pop ( )
inline

Pop the last element pushed by this thread.

The number of consecutive pops supported without intevening pushes is implementation dependent.

template<typename T, unsigned int BlockSize = 0>
template<typename ItemTy >
reference galois::InsertBag< T, BlockSize >::push ( ItemTy &&  val)
inline

Thread safe bag insertion.

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

Thread safe bag insertion.

template<typename T, unsigned int BlockSize = 0>
void galois::InsertBag< T, BlockSize >::swap ( InsertBag< T, BlockSize > &  o)
inline

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