1 #ifndef __JSUPPORT__JTREESCANNERINTERFACE__
2 #define __JSUPPORT__JTREESCANNERINTERFACE__
17 namespace JPP {
using namespace JSUPPORT; }
33 template<
class T,
class JEvaluator_t = JNullType>
48 template<
class JClass_t>
81 virtual Long64_t getEntries()
const = 0;
90 virtual JClass_t* getEntry(Long64_t index) = 0;
108 return JClass_t::Class_Name();
137 return pTreeScanner->getEntry(index);
148 return *(pTreeScanner->getEntry(index));
158 virtual bool equals(
const iterator& cursor)
const
160 return index == cursor.index;
171 return ++index < pTreeScanner->getEntries();
206 struct reverse_iterator :
228 return (this->pTreeScanner->getEntry(this->pTreeScanner->getEntries() - this->index - 1));
239 return *(this->pTreeScanner->getEntry(this->pTreeScanner->getEntries() - this->index - 1));
249 virtual bool equals(
const reverse_iterator& cursor)
const
251 return index == cursor.index;
262 return ++index < pTreeScanner->getEntries();
301 return iterator(
this, this->getLowerLimit());
312 return iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
323 return reverse_iterator(
this, this->getLowerLimit());
334 return reverse_iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
345 template<
class JClass_t,
class JEvaluator_t>
365 virtual Long64_t
find(
const double value)
const = 0;
375 Long64_t
find(
const T&
object)
const
virtual bool increment()
Increment iterator.
JTreeScannerInterface * pTreeScanner
Interface for object iteration with rewinding.
const data_type & operator*()
Dereference operator.
data_type * operator->()
Smart pointer operator.
void configure(const JMultipleFileScanner_t &file_list)
Configure.
iterator()
Default constructor.
iterator(JTreeScannerInterface *__p, const counter_type __i)
Constructor.
reverse_iterator rbegin()
Get reverse iterator to begin of data.
virtual bool increment()
Increment iterator.
reverse_iterator rend()
Get reverse iterator to end of data.
data_type & operator*()
Dereference operator.
virtual bool decrement()
Decrement iterator.
Long64_t counter_type
Type definition for counter.
virtual Long64_t find(const double value) const =0
Find index of element that is closest in value to given value.
iterator begin()
Get iterator to begin of data.
Auxiliary interface for direct access of elements in ROOT TChain.
const data_type * operator->()
Smart pointer operator.
virtual const char * getClassName() const
Get actual class name.
Auxiliary class for defining the range of iterations of objects.
Template interface for method bool decrement().
JRewindableObjectIterator< JClass_t >::pointer_type pointer_type
JTreeScannerInterface * pTreeScanner
reverse_iterator(JTreeScannerInterface *__p, const counter_type __i)
Constructor.
Template definition of auxiliary base class for comparison of data structures.
virtual bool equals(const iterator &cursor) const
Equality of iterator.
Auxiliary class for no type definition.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Auxiliary base class for list of file names.
JTreeScannerInterface(const JEvaluator_t &evaluator=JEvaluator_t())
Constructor.
iterator end()
Get iterator to end of data.
virtual bool decrement()
Decrement iterator.
virtual bool equals(const reverse_iterator &cursor) const
Equality of iterator.
Long64_t find(const T &object) const
Find index of element that is closest in value to given object.
Auxiliaries for defining the range of iterations of objects.
const JEvaluator_t & getEvaluator() const
Get evaluator.
reverse_iterator()
Default constructor.