qpid::ISList< Node > Class Template Reference

Intrusive singly-linked list. More...

#include <ISList.h>

List of all members.

Public Types

typedef Node value_type
typedef Node::pointer pointer
typedef Node::const_pointer const_pointer
typedef value_type & reference
typedef const value_type & const_reference
typedef size_t size_type
typedef ptrdiff_t difference_type
typedef Iterator< value_type > iterator
typedef Iterator< const
value_type > 
const_iterator

Public Member Functions

iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
bool empty () const
size_type size () const
void swap (ISList &x)
iterator insert (iterator i, const pointer &p)
 Unlike standard containers, insert takes a const pointer&, not a const value_type&.
void erase (iterator i)
void erase (iterator i, iterator j)
void clear ()
reference front ()
const_reference front () const
void pop_front ()
void push_front (pointer x)
void push_back (pointer x)


Detailed Description

template<class Node>
class qpid::ISList< Node >

Intrusive singly-linked list.

Provides forward iterator, constant time insertion and constant time pop_front (but not pop_back) so makes a good queue implementation.

Unlike standard containers insert(), push_front() and push_back() take const pointer& rather than const value_type&.

Iterators can be converted to pointers.

Noncopyable - intrusively linked nodes cannot be shared.

Parameters:
Node value type for the list, must derive from ISListNode<T>.

Member Function Documentation

template<class Node>
iterator qpid::ISList< Node >::insert ( iterator  i,
const pointer &  p 
) [inline]

Unlike standard containers, insert takes a const pointer&, not a const value_type&.

The value is not copied, only linked into the list.


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

Generated on Thu May 15 22:22:20 2008 for Qpid by  doxygen 1.5.5