1#ifndef __JSUPPORT__JTREESCANNERINTERFACE__
2#define __JSUPPORT__JTREESCANNERINTERFACE__
33 template<
class T,
class JEvaluator_t = JNullType>
46 template<
class JClass_t>
56 struct basic_iterator :
68 return index ==
cursor.index;
79 return ++index < pTreeScanner->getEntries();
102 return (index += offset) < pTreeScanner->getEntries();
114 return (index -= offset) >= 0;
211 return JClass_t::Class_Name();
219 public basic_iterator<iterator>
239 return this->pTreeScanner->getEntry(this->index);
250 return *(this->pTreeScanner->getEntry(this->index));
264 return second.index - first.index;
284 struct reverse_iterator :
285 public basic_iterator<reverse_iterator>
305 return (this->pTreeScanner->getEntry(
this->pTreeScanner->getEntries() -
this->index - 1));
316 return *(this->pTreeScanner->getEntry(this->pTreeScanner->getEntries() -
this->index - 1));
328 const reverse_iterator& second)
330 return second.index - first.index;
342 basic_iterator<reverse_iterator>(p, i)
354 return getEntries() == 0;
365 return iterator(
this, this->getLowerLimit());
376 return iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
387 return reverse_iterator(
this, this->getLowerLimit());
398 return reverse_iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
409 template<
class JClass_t,
class JEvaluator_t>
Auxiliaries for defining the range of iterations of objects.
Scanning of objects from multiple files according a format that follows from the extension of each fi...
Template interface for method bool decrement().
Interface for object iteration with rewinding.
Template definition of a multi-dimensional oscillation probability interpolation table.
virtual void configure(const JMultipleFileScanner_t &file_list, const JLimit &limit)=0
Configure.
virtual const char * getClassName() const
Get actual class name.
void configure(const JMultipleFileScanner_t &file_list)
Configure.
JRewindableObjectIterator< JClass_t >::pointer_type pointer_type
iterator begin()
Get iterator to begin of data.
virtual Long64_t getEntries() const =0
Get number of entries.
reverse_iterator rend()
Get reverse iterator to end of data.
iterator end()
Get iterator to end of data.
virtual JClass_t * getEntry(Long64_t index)=0
Get entry at given index.
virtual counter_type getCounter() const =0
Get internal counter.
bool empty() const
Check emptyness.
reverse_iterator rbegin()
Get reverse iterator to begin of data.
Auxiliary interface for direct access of elements in ROOT TChain.
virtual Long64_t find(const value_type value) const =0
Find index of element that is closest in value to given value.
const JEvaluator_t & getEvaluator() const
Get evaluator.
JEvaluator_t::value_type value_type
Type definition of time value.
Long64_t find(const T &object) const
Find index of element that is closest in value to given object.
JTreeScannerInterface(const JEvaluator_t &evaluator=JEvaluator_t())
Constructor.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Support classes and methods for experiment specific I/O.
Template definition of auxiliary base class for comparison of data structures.
Auxiliary class for no type definition.
Auxiliary class for defining the range of iterations of objects.
Auxiliary base class for list of file names.
virtual bool decrement() override
Decrement iterator.
virtual bool decrement(const size_t offset) override
Decrement iterator.
virtual bool increment(const size_t offset) override
Increment iterator.
counter_type get() const
Get index.
basic_iterator()
Default constructor.
virtual bool increment() override
Increment iterator.
JTreeScannerInterface * pTreeScanner
virtual bool equals(const T &cursor) const
Equality of iterator.
basic_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
iterator()
Default constructor.
const data_type * operator->()
Smart pointer operator.
friend difference_type distance(const iterator &first, const iterator &second)
Get distance between two iterators.
const data_type & operator*()
Dereference operator.
iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
counter_type difference_type
reverse_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
const data_type & operator*()
Dereference operator.
reverse_iterator()
Default constructor.
counter_type difference_type
friend difference_type distance(const reverse_iterator &first, const reverse_iterator &second)
Get distance between two iterators.
const data_type * operator->()
Smart pointer operator.