Jpp
Public Types | Public Member Functions | Protected Attributes | Private Attributes | List of all members
JLANG::JConversionIterator< JInput_t, JOutput_t > Class Template Reference

Interface for object iteration with type conversion. More...

#include <JConversionIterator.hh>

Inheritance diagram for JLANG::JConversionIterator< JInput_t, JOutput_t >:
JLANG::JObjectIterator< JOutput_t >

Public Types

typedef JObjectIterator< JOutput_t >::pointer_type pointer_type
 

Public Member Functions

 JConversionIterator (JObjectIterator< JInput_t > &input)
 Constructor. More...
 
virtual bool hasNext ()
 Check availability of next element. More...
 
virtual const pointer_typenext ()
 Get next element. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 

Protected Attributes

JObjectIterator< JInput_t > & in
 

Private Attributes

pointer_type ps
 

Detailed Description

template<class JInput_t, class JOutput_t>
class JLANG::JConversionIterator< JInput_t, JOutput_t >

Interface for object iteration with type conversion.

Definition at line 20 of file JConversionIterator.hh.

Member Typedef Documentation

◆ pointer_type

template<class JInput_t , class JOutput_t >
typedef JObjectIterator<JOutput_t>::pointer_type JLANG::JConversionIterator< JInput_t, JOutput_t >::pointer_type

Definition at line 25 of file JConversionIterator.hh.

Constructor & Destructor Documentation

◆ JConversionIterator()

template<class JInput_t , class JOutput_t >
JLANG::JConversionIterator< JInput_t, JOutput_t >::JConversionIterator ( JObjectIterator< JInput_t > &  input)
inline

Constructor.

Parameters
inputinput iterator

Definition at line 33 of file JConversionIterator.hh.

33  :
34  in(input)
35  {}

Member Function Documentation

◆ hasNext()

template<class JInput_t , class JOutput_t >
virtual bool JLANG::JConversionIterator< JInput_t, JOutput_t >::hasNext ( )
inlinevirtual

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implements JLANG::JObjectIterator< JOutput_t >.

Definition at line 43 of file JConversionIterator.hh.

44  {
45  return in.hasNext();
46  }

◆ next()

template<class JInput_t , class JOutput_t >
virtual const pointer_type& JLANG::JConversionIterator< JInput_t, JOutput_t >::next ( )
inlinevirtual

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< JOutput_t >.

Definition at line 54 of file JConversionIterator.hh.

55  {
56  const JInput_t* p = in.next();
57 
58  if (p != NULL)
59  ps.reset(new JOutput_t(*p)); // type conversion
60  else
61  ps.reset(NULL);
62 
63  return ps;
64  }

◆ skip()

virtual skip_type JLANG::JObjectIterator< JOutput_t >::skip ( const skip_type  ns)
inlinevirtualinherited

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Definition at line 88 of file JObjectIterator.hh.

89  {
90  skip_type i = 0;
91 
92  for ( ; i != ns && hasNext(); ++i) {
93  next();
94  }
95 
96  return i;
97  }

Member Data Documentation

◆ in

template<class JInput_t , class JOutput_t >
JObjectIterator<JInput_t>& JLANG::JConversionIterator< JInput_t, JOutput_t >::in
protected

Definition at line 67 of file JConversionIterator.hh.

◆ ps

template<class JInput_t , class JOutput_t >
pointer_type JLANG::JConversionIterator< JInput_t, JOutput_t >::ps
private

Definition at line 69 of file JConversionIterator.hh.


The documentation for this class was generated from the following file:
JLANG::skip_type
unsigned int skip_type
Type definition for number of objects to skip.
Definition: JObjectIterator.hh:25
JLANG::JObjectIterator::hasNext
virtual bool hasNext()=0
Check availability of next element.
JLANG::JConversionIterator::ps
pointer_type ps
Definition: JConversionIterator.hh:69
JLANG::JConversionIterator::in
JObjectIterator< JInput_t > & in
Definition: JConversionIterator.hh:67
JLANG::JObjectIterator::next
virtual const pointer_type & next()=0
Get next element.