obby::ring< value_type > Class Template Reference

#include <ring.hpp>

List of all members.

Public Types

typedef std::list< value_type > container_type
typedef container_type::size_type size_type
typedef container_type::iterator iterator
typedef container_type::const_iterator const_iterator

Public Member Functions

 ring (size_type n)
void push_back (const value_type &val)
void pop_back ()
const value_type & front () const
const value_type & back () const
bool empty () const
void clear ()
iterator begin ()
iterator end ()
const_iterator begin () const
const_iterator end () const

Private Attributes

container_type m_elems
size_type m_n


Detailed Description

template<typename value_type>
class obby::ring< value_type >

STL style ring container class. A ring container is a container with a fixed size that allows to insert more elements as the container is able to hold. Older elements will be removed in this case.

Definition at line 33 of file ring.hpp.


Member Typedef Documentation

template<typename value_type>
typedef std::list<value_type> obby::ring< value_type >::container_type

Definition at line 36 of file ring.hpp.

template<typename value_type>
typedef container_type::size_type obby::ring< value_type >::size_type

Definition at line 37 of file ring.hpp.

template<typename value_type>
typedef container_type::iterator obby::ring< value_type >::iterator

Definition at line 38 of file ring.hpp.

template<typename value_type>
typedef container_type::const_iterator obby::ring< value_type >::const_iterator

Definition at line 39 of file ring.hpp.


Constructor & Destructor Documentation

template<typename value_type>
obby::ring< value_type >::ring ( size_type  n  ) 

Creates a ring with n elements before wrapping around.

Definition at line 99 of file ring.hpp.


Member Function Documentation

template<typename value_type>
void obby::ring< value_type >::push_back ( const value_type &  val  ) 

Adds a new element to the ring. If the ring is full, the oldest element will be overridden.

Definition at line 105 of file ring.hpp.

References obby::ring< value_type >::m_elems, and obby::ring< value_type >::m_n.

template<typename value_type>
void obby::ring< value_type >::pop_back (  ) 

Removes the last (newest) element from the ring. The ring will shrink after this and the next call to push_back will never overwrite an element.

Definition at line 113 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
const value_type & obby::ring< value_type >::front (  )  const

Returns the first (oldest) element in the ring.

Definition at line 119 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
const value_type & obby::ring< value_type >::back (  )  const

Returns the last (newest) element in the ring.

Definition at line 125 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
bool obby::ring< value_type >::empty (  )  const

Checks if the ring contains any elements. If not, calls to pop_back, front or back will not succeed.

Definition at line 131 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
void obby::ring< value_type >::clear (  ) 

Clears all contents within the ring.

Definition at line 137 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
ring< value_type >::iterator obby::ring< value_type >::begin (  ) 

Returns an STL-like iterator pointing at the first (oldest) element in the ring.

Definition at line 155 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
ring< value_type >::iterator obby::ring< value_type >::end (  ) 

Returns an STL-like iterator pointing after the last (newest) element in the ring.

Definition at line 161 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
ring< value_type >::const_iterator obby::ring< value_type >::begin (  )  const

Returns an STL-like const_iterator pointing at the first (oldest) element in the ring.

Definition at line 143 of file ring.hpp.

References obby::ring< value_type >::m_elems.

template<typename value_type>
ring< value_type >::const_iterator obby::ring< value_type >::end (  )  const

Returns an STL-like const_iterator pointing after the last (newest) element in the ring.

Definition at line 149 of file ring.hpp.

References obby::ring< value_type >::m_elems.


Member Data Documentation

template<typename value_type>
container_type obby::ring< value_type >::m_elems [private]

Definition at line 94 of file ring.hpp.

Referenced by obby::ring< value_type >::back(), obby::ring< value_type >::begin(), obby::ring< value_type >::clear(), obby::ring< value_type >::empty(), obby::ring< value_type >::end(), obby::ring< value_type >::front(), obby::ring< value_type >::pop_back(), and obby::ring< value_type >::push_back().

template<typename value_type>
size_type obby::ring< value_type >::m_n [private]

Definition at line 95 of file ring.hpp.

Referenced by obby::ring< value_type >::push_back().


The documentation for this class was generated from the following file:
Generated on Fri Jan 11 10:01:33 2008 for obby by  doxygen 1.5.1