1 #ifndef __JSUPPORT__JTREESCANNERINTERFACE__
2 #define __JSUPPORT__JTREESCANNERINTERFACE__
17 namespace JPP {
using namespace JSUPPORT; }
33 template<
class T,
class JEvaluator_t = JNullType>
46 template<
class JClass_t>
56 struct basic_iterator :
66 virtual bool equals(
const T& cursor)
const
68 return index == cursor.index;
79 return ++index < pTreeScanner->getEntries();
102 return (index += offset) < pTreeScanner->getEntries();
114 return (index -= offset) >= 0;
184 virtual Long64_t getEntries()
const = 0;
193 virtual JClass_t* getEntry(Long64_t index) = 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>
429 virtual Long64_t
find(
const double value)
const = 0;
439 Long64_t
find(
const T&
object)
const
virtual bool equals(const T &cursor) const
Equality of iterator.
Interface for object iteration with rewinding.
const data_type & operator*()
Dereference operator.
virtual bool increment(const size_t offset) override
Increment iterator.
data_type * operator->()
Smart pointer operator.
void configure(const JMultipleFileScanner_t &file_list)
Configure.
bool empty() const
Check emptyness.
iterator()
Default constructor.
reverse_iterator rbegin()
Get reverse iterator to begin of data.
reverse_iterator rend()
Get reverse iterator to end of data.
data_type & operator*()
Dereference operator.
virtual bool decrement(const size_t offset) override
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.
basic_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
virtual const char * getClassName() const
Get actual class name.
Auxiliary class for defining the range of iterations of objects.
friend difference_type distance(const iterator &first, const iterator &second)
Get distance between two iterators.
Template interface for method bool decrement().
iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
JRewindableObjectIterator< JClass_t >::pointer_type pointer_type
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Template definition of auxiliary base class for comparison of data structures.
virtual bool decrement() override
Decrement iterator.
Auxiliary class for no type definition.
counter_type difference_type
basic_iterator()
Default constructor.
counter_type difference_type
JTreeScannerInterface * pTreeScanner
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.
friend difference_type distance(const reverse_iterator &first, const reverse_iterator &second)
Get distance between two iterators.
JTreeScannerInterface(const JEvaluator_t &evaluator=JEvaluator_t())
Constructor.
iterator end()
Get iterator to end of data.
reverse_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
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.
virtual bool increment() override
Increment iterator.