#include <common.h>
| Public Types | |
| typedef std::iterator_traits< It > | it_traits | 
| typedef std::output_iterator_tag | iterator_category | 
| THIS CAN BE DISCUSSED : All iterator_lock are output iterators. | |
| typedef output_iterator_traits< It >::value_type | value_type | 
| typedef it_traits::difference_type | difference_type | 
| typedef it_traits::pointer | pointer | 
| typedef it_traits::reference | reference | 
| Public Member Functions | |
| iterator_lock (const It &anIter, Mutex &aMtx) | |
| iterator_lock (const iterator_lock &anILH) | |
| It | base_iterator (void) const | 
| Converts into the original iterator's value. | |
| void | base_set (const It &refIt) | 
| Sets the iterator only because the mutex reference cannot change. | |
| void | base_set_and_incr (const value_type &refVal) | 
| Mutex & | mutex (void) | 
| Returns a reference on the mutex. | |
| Private Member Functions | |
| iterator_lock & | operator++ (void) | 
| iterator_lock | operator++ (int) | 
| Private Attributes | |
| It | _It | 
| Mutex & | _MtxRef | 
| Please note that it is a REFERENCE !! | |
For parallel use, this is just a helper, that tells to an algorithm how to lock an output iterator. This unique iterator will be shared by several sub-threads writing into it. It is possible to use any mutex type as long as it is compatible with the interface of mutex_base. See guard.h for possible evolutions into a full-fledged smart pointer.
| typedef it_traits::difference_type rpa::iterator_lock< It, Mutex >::difference_type | 
| typedef std::iterator_traits< It > rpa::iterator_lock< It, Mutex >::it_traits | 
| typedef std::output_iterator_tag rpa::iterator_lock< It, Mutex >::iterator_category | 
THIS CAN BE DISCUSSED : All iterator_lock are output iterators.
| typedef it_traits::pointer rpa::iterator_lock< It, Mutex >::pointer | 
| typedef it_traits::reference rpa::iterator_lock< It, Mutex >::reference | 
| typedef output_iterator_traits< It >::value_type rpa::iterator_lock< It, Mutex >::value_type | 
| rpa::iterator_lock< It, Mutex >::iterator_lock | ( | const It & | anIter, | |
| Mutex & | aMtx | |||
| ) |  [inline] | 
| rpa::iterator_lock< It, Mutex >::iterator_lock | ( | const iterator_lock< It, Mutex > & | anILH | ) |  [inline] | 
| It rpa::iterator_lock< It, Mutex >::base_iterator | ( | void | ) | const  [inline] | 
Converts into the original iterator's value.
| void rpa::iterator_lock< It, Mutex >::base_set | ( | const It & | refIt | ) |  [inline] | 
Sets the iterator only because the mutex reference cannot change.
| void rpa::iterator_lock< It, Mutex >::base_set_and_incr | ( | const value_type & | refVal | ) |  [inline] | 
| Mutex& rpa::iterator_lock< It, Mutex >::mutex | ( | void | ) |  [inline] | 
Returns a reference on the mutex.
Mutexes are not copiable nor assignable, and we want to use only the original mutex passed as a parameter.
| iterator_lock rpa::iterator_lock< It, Mutex >::operator++ | ( | int | ) |  [private] | 
| iterator_lock& rpa::iterator_lock< It, Mutex >::operator++ | ( | void | ) |  [private] | 
| It rpa::iterator_lock< It, Mutex >::_It  [private] | 
| Mutex& rpa::iterator_lock< It, Mutex >::_MtxRef  [private] | 
Please note that it is a REFERENCE !!
 1.4.7
 1.4.7