Galois::gdeque< T, ChunkSize, ContainerTy > Class Template Reference

Like std::deque but use Galois memory management functionality. More...

#include <gdeque.h>

List of all members.

Classes

struct  Block
struct  Iterator

Public Types

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

Public Member Functions

 gdeque ()
 ~gdeque ()
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const
size_t size () const
bool empty () const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
void pop_back ()
void pop_front ()
void clear ()
iterator insert (iterator position, size_t n, const value_type &val)
template<typename... Args>
void emplace_back (Args &&...args)
void push_back (value_type &&v)
void push_back (const value_type &v)
template<typename... Args>
void emplace_front (Args &&...args)
void push_front (value_type &&v)
void push_front (const value_type &v)

Protected Attributes

Blockfirst

Private Member Functions

Blockalloc_block ()
bool precondition () const
void free_block (Block *b)
void extend_first ()
void extend_last ()
void shrink_first ()
void shrink_last ()

Private Attributes

Blocklast
unsigned num
Galois::Runtime::MM::FixedSizeAllocator heap

Detailed Description

template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
class Galois::gdeque< T, ChunkSize, ContainerTy >

Like std::deque but use Galois memory management functionality.


Member Typedef Documentation

template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef Iterator<const T> Galois::gdeque< T, ChunkSize, ContainerTy >::const_iterator
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef const T& Galois::gdeque< T, ChunkSize, ContainerTy >::const_reference
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef Iterator<T> Galois::gdeque< T, ChunkSize, ContainerTy >::iterator
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef T* Galois::gdeque< T, ChunkSize, ContainerTy >::pointer
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef T& Galois::gdeque< T, ChunkSize, ContainerTy >::reference
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
typedef T Galois::gdeque< T, ChunkSize, ContainerTy >::value_type

Constructor & Destructor Documentation

template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Galois::gdeque< T, ChunkSize, ContainerTy >::gdeque (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Galois::gdeque< T, ChunkSize, ContainerTy >::~gdeque (  )  [inline]

Member Function Documentation

template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Block* Galois::gdeque< T, ChunkSize, ContainerTy >::alloc_block (  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
const_reference Galois::gdeque< T, ChunkSize, ContainerTy >::back (  )  const [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
reference Galois::gdeque< T, ChunkSize, ContainerTy >::back (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
const_iterator Galois::gdeque< T, ChunkSize, ContainerTy >::begin (  )  const [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
iterator Galois::gdeque< T, ChunkSize, ContainerTy >::begin (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::clear (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
template<typename... Args>
void Galois::gdeque< T, ChunkSize, ContainerTy >::emplace_back ( Args &&...  args  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
template<typename... Args>
void Galois::gdeque< T, ChunkSize, ContainerTy >::emplace_front ( Args &&...  args  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
bool Galois::gdeque< T, ChunkSize, ContainerTy >::empty (  )  const [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
const_iterator Galois::gdeque< T, ChunkSize, ContainerTy >::end (  )  const [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
iterator Galois::gdeque< T, ChunkSize, ContainerTy >::end (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::extend_first (  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::extend_last (  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::free_block ( Block b  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
const_reference Galois::gdeque< T, ChunkSize, ContainerTy >::front (  )  const [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
reference Galois::gdeque< T, ChunkSize, ContainerTy >::front (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
iterator Galois::gdeque< T, ChunkSize, ContainerTy >::insert ( iterator  position,
size_t  n,
const value_type val 
) [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::pop_back (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::pop_front (  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
bool Galois::gdeque< T, ChunkSize, ContainerTy >::precondition (  )  const [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::push_back ( const value_type v  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::push_back ( value_type &&  v  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::push_front ( const value_type v  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::push_front ( value_type &&  v  )  [inline]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::shrink_first (  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
void Galois::gdeque< T, ChunkSize, ContainerTy >::shrink_last (  )  [inline, private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
size_t Galois::gdeque< T, ChunkSize, ContainerTy >::size (  )  const [inline]

Member Data Documentation

template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Block* Galois::gdeque< T, ChunkSize, ContainerTy >::first [protected]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Galois::Runtime::MM::FixedSizeAllocator Galois::gdeque< T, ChunkSize, ContainerTy >::heap [private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
Block* Galois::gdeque< T, ChunkSize, ContainerTy >::last [private]
template<typename T, unsigned ChunkSize = 64, typename ContainerTy = FixedSizeRing<T, ChunkSize>>
unsigned Galois::gdeque< T, ChunkSize, ContainerTy >::num [private]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1