NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
AlgoIterator.hpp
1 // AlgoIterator.hpp
2 //
3 // Author : Jeromy Tompkins
4 // Date : 8/14/2013
5 
6 #ifndef ALGOITERATOR_H
7 #define ALGOITERATOR_H
8 
9 #include "Trace.hpp"
10 #include "TObject.h"
11 
12 namespace TrAnal
13 {
14 
16  template<class T>
17  class AlgoIterator
18  {
19  public:
25  AlgoIterator& operator=(const AlgoIterator& ) { return *this;}
26  virtual ~AlgoIterator() {}
27 
28  // Support for basic comparison with TrIterator
29  virtual bool operator<(const TrIterator<T>& ) const { return false; }
30 
31  // Support for range specification
37  virtual TrIterator<T> min_extent() const { return TrIterator<T>(0);}
38 
44  virtual TrIterator<T> max_extent() const { return TrIterator<T>(0);}
45 
46  // Support for incrementation
51  virtual AlgoIterator& operator++() { return *this;}
52 
53  // Support for dereferencing to a double
60  virtual double operator*() const { return 0;}
61 
62  // ROOT dict generation
64  ClassDef(AlgoIterator,0);
66  }; // end AlgoIterator class
67 
68 } // end of namespace
69 
70 #endif
virtual double operator*() const
Dereference operator.
Definition: AlgoIterator.hpp:60
TrIterator template class.
Definition: TrIterator.hpp:24
virtual TrIterator< T > min_extent() const
Min extent To implement the minimum iterator extent for the range This default implementation returns...
Definition: AlgoIterator.hpp:37
AlgoIterator & operator=(const AlgoIterator &)
Assignment operator.
Definition: AlgoIterator.hpp:25
AlgoIterator()
Default constructor.
Definition: AlgoIterator.hpp:21
virtual TrIterator< T > max_extent() const
Max extent To implement the maximum iterator extent for the range This default implementation returns...
Definition: AlgoIterator.hpp:44
Definition: AlgoIterator.hpp:12
AlgoIterator(const AlgoIterator &)
Copy constructor.
Definition: AlgoIterator.hpp:23
Abstract AlgoIterator base class.
Definition: AlgoIterator.hpp:17
virtual AlgoIterator & operator++()
Prefixed incrementation Supports ++x style incrementing. Default implementation does nothing...
Definition: AlgoIterator.hpp:51