Jpp
JConversionIterator.hh
Go to the documentation of this file.
1 #ifndef __JLANG__JCONVERSIONITERATOR__
2 #define __JLANG__JCONVERSIONITERATOR__
3 
5 
6 
7 /**
8  * \author mdejong
9  */
10 
11 namespace JLANG {}
12 namespace JPP { using namespace JLANG; }
13 
14 namespace JLANG {
15 
16  /**
17  * Interface for object iteration with type conversion.
18  */
19  template<class JInput_t, class JOutput_t>
21  public JObjectIterator<JOutput_t>
22  {
23  public:
24 
26 
27 
28  /**
29  * Constructor.
30  *
31  * \param input input iterator
32  */
34  in(input)
35  {}
36 
37 
38  /**
39  * Check availability of next element.
40  *
41  * \return true if the iteration has more elements; else false
42  */
43  virtual bool hasNext()
44  {
45  return in.hasNext();
46  }
47 
48 
49  /**
50  * Get next element.
51  *
52  * \return pointer to element
53  */
54  virtual const pointer_type& next()
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  }
65 
66  protected:
68  private:
70  };
71 }
72 
73 #endif
JLANG::JConversionIterator::hasNext
virtual bool hasNext()
Check availability of next element.
Definition: JConversionIterator.hh:43
JObjectIterator.hh
JLANG::JConversionIterator::JConversionIterator
JConversionIterator(JObjectIterator< JInput_t > &input)
Constructor.
Definition: JConversionIterator.hh:33
JLANG::JObjectIterator::hasNext
virtual bool hasNext()=0
Check availability of next element.
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JLANG::JConversionIterator::ps
pointer_type ps
Definition: JConversionIterator.hh:69
JLANG::JConversionIterator::in
JObjectIterator< JInput_t > & in
Definition: JConversionIterator.hh:67
JLANG::JConversionIterator::pointer_type
JObjectIterator< JOutput_t >::pointer_type pointer_type
Definition: JConversionIterator.hh:25
JLANG::JObjectIterator
Interface of object iteration for a single data type.
Definition: JObjectIterator.hh:43
JLANG::JConversionIterator::next
virtual const pointer_type & next()
Get next element.
Definition: JConversionIterator.hh:54
JLANG
Auxiliary classes and methods for language specific functionality.
Definition: JAbstractClass.hh:10
JLANG::JObjectIterator::next
virtual const pointer_type & next()=0
Get next element.
JLANG::JConversionIterator
Interface for object iteration with type conversion.
Definition: JConversionIterator.hh:20