rpa::pipe_circular< Container, void > Class Template Reference

This very simplified specialization is here only for completeness. More...

#include <pipeline.h>

Inheritance diagram for rpa::pipe_circular< Container, void >:

rpa::pipe_container< Container > List of all members.

Public Types

typedef container_traits<
Container >::value_type 
value_type
typedef pipe_itr< value_type,
reader > 
iterator
 This is a synchronized iterator. It hangs until there is data to read.

Public Member Functions

 pipe_circular ()
 pipe_circular (size_t maxNb)
template<class Iter>
 pipe_circular (Iter begIter, Iter endIter)
 pipe_circular (const Container &aCont)
iterator begin (void)
 These two iterators can be used into algorithm of std.
iterator end (void)

Private Types

typedef pipe_container< Container > pip_cont_t
typedef container_traits<
Container >::iterator 
intrn_iter

Private Member Functions

void init (void)
 Common init to all constructors.

Private Attributes

intrn_iter _it_rd
intrn_iter _it_end
bool _shut

Classes

class  reader
 Models how to read from a circular pipe without condition variable. More...

Detailed Description

template<class Container>
class rpa::pipe_circular< Container, void >

This very simplified specialization is here only for completeness.

It cannot be blocking, and it sends an exception as soon as there is an extra element it cannot store.


Member Typedef Documentation

template<class Container>
typedef container_traits< Container >::iterator rpa::pipe_circular< Container, void >::intrn_iter [private]

template<class Container>
typedef pipe_itr< value_type, reader > rpa::pipe_circular< Container, void >::iterator

This is a synchronized iterator. It hangs until there is data to read.

Reimplemented from rpa::pipe_container< Container >.

template<class Container>
typedef pipe_container< Container > rpa::pipe_circular< Container, void >::pip_cont_t [private]

template<class Container>
typedef container_traits< Container >::value_type rpa::pipe_circular< Container, void >::value_type


Constructor & Destructor Documentation

template<class Container>
rpa::pipe_circular< Container, void >::pipe_circular (  )  [inline]

template<class Container>
rpa::pipe_circular< Container, void >::pipe_circular ( size_t  maxNb  )  [inline]

This simply initialises the pipe as empty, with a given size. the pipe will never grow bigger.

template<class Container>
template<class Iter>
rpa::pipe_circular< Container, void >::pipe_circular ( Iter  begIter,
Iter  endIter 
) [inline]

This inititializes the pipe as full, with this range of data. Its size is the size of the range.

template<class Container>
rpa::pipe_circular< Container, void >::pipe_circular ( const Container &  aCont  )  [inline]

This initializes the pipe with the content of this container which is copied. The pipe will never be bigger.


Member Function Documentation

template<class Container>
iterator rpa::pipe_circular< Container, void >::begin ( void   )  [inline]

These two iterators can be used into algorithm of std.

Reimplemented from rpa::pipe_container< Container >.

template<class Container>
iterator rpa::pipe_circular< Container, void >::end ( void   )  [inline]

Reimplemented from rpa::pipe_container< Container >.

template<class Container>
void rpa::pipe_circular< Container, void >::init ( void   )  [inline, private]

Common init to all constructors.


Member Data Documentation

template<class Container>
intrn_iter rpa::pipe_circular< Container, void >::_it_end [private]

template<class Container>
intrn_iter rpa::pipe_circular< Container, void >::_it_rd [private]

template<class Container>
bool rpa::pipe_circular< Container, void >::_shut [private]

If this is set, when threads are waiting for data and the pipe is empty, they will consider that the pipe will never have data anymore. Otherwise, they will simply wait.


The documentation for this class was generated from the following file:
Generated on Tue Sep 25 10:20:37 2007 for rpa by  doxygen 1.4.7