21 #ifndef CONVERSIONITERATOR_H 22 #define CONVERSIONITERATOR_H 23 #include <tulip/Iterator.h> 24 #include <tulip/memorypool.h> 43 template <
typename TYPEIN,
typename TYPEOUT,
typename CONVERSIONFUNCTOR>
44 class ConversionIterator :
public Iterator<TYPEOUT> {
46 ConversionIterator(
Iterator<TYPEIN> *it, CONVERSIONFUNCTOR convFunctor):_it(it), _convFunctor(convFunctor) {
48 ~ConversionIterator() {
51 inline bool hasNext() {
52 return _it->hasNext();
54 inline TYPEOUT next() {
55 return _convFunctor(_it->next());
58 tlp::Iterator<TYPEIN> *_it;
59 CONVERSIONFUNCTOR _convFunctor;
68 template <
typename TYPEIN,
typename TYPEOUT,
typename CONVERSIONFUNCTOR>
69 class MPConversionIterator :
public ConversionIterator<TYPEIN, TYPEOUT, CONVERSIONFUNCTOR>,
public MemoryPool<MPConversionIterator<TYPEIN, TYPEOUT, CONVERSIONFUNCTOR> > {
72 ConversionIterator<TYPEIN, TYPEOUT, CONVERSIONFUNCTOR>(it, convFunctor) {
77 #endif // CONVERSIONITERATOR_H
Interface for Tulip iterators. Allows basic iteration operations only.