Jpp
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
JLANG::JObjectIterator< T > Class Template Referenceabstract

Interface of object iteration for a single data type. More...

#include <JObjectIterator.hh>

Inheritance diagram for JLANG::JObjectIterator< T >:
JDATABASE::JDatabaseObjectIterator< JTypeList< JHead_t, JTail_t > > JLANG::JAbstractObjectIterator< T > JLANG::JAbstractObjectReader< T > JLANG::JAccessibleObjectIterator< T > JLANG::JNullIterator< T > JLANG::JObjectReader< T > JLANG::JObjectSampler< T, JSampler_t > JLANG::JPipe< T > JLANG::JRewindableObjectIterator< T >

Public Types

typedef JPointer< T > pointer_type
 Type definition of pointer_type. More...
 

Public Member Functions

virtual ~JObjectIterator ()
 Virtual destructor. More...
 
virtual bool hasNext ()=0
 Check availability of next element. More...
 
virtual const pointer_typenext ()=0
 Get next element. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 

Protected Member Functions

 JObjectIterator ()
 Default constructor. More...
 

Friends

JObjectIterator< T > & operator>> (JObjectIterator< T > &in, JObjectOutput< T > &out)
 Copy to object output. More...
 
void operator| (JObjectIterator< T > &left, JObjectOutput< T > &right)
 Pipe terminator. More...
 
JMultiPipe< T, 0 > & operator| (JObjectIterator< T > &left, const JValve< T > &right)
 Pipe operator. More...
 
JMultiPipe< T, 0 > & operator| (JObjectIterator< T > &left, const JObjectSelector< T > &right)
 Pipe operator. More...
 
JMultiPipe< T, 0 > & operator| (JObjectIterator< T > &left, const JRegulator &right)
 Pipe operator. More...
 
template<class JBase_t >
JObjectMultiplexer< T, JBase_t > & operator| (JObjectIterator< T > &left, const JType< JBase_t > &right)
 Pipe operator. More...
 

Detailed Description

template<class T>
class JLANG::JObjectIterator< T >

Interface of object iteration for a single data type.

Definition at line 43 of file JObjectIterator.hh.

Member Typedef Documentation

◆ pointer_type

template<class T>
typedef JPointer<T> JLANG::JObjectIterator< T >::pointer_type

Type definition of pointer_type.

Definition at line 56 of file JObjectIterator.hh.

Constructor & Destructor Documentation

◆ JObjectIterator()

template<class T>
JLANG::JObjectIterator< T >::JObjectIterator ( )
inlineprotected

Default constructor.

Definition at line 48 of file JObjectIterator.hh.

49  {}

◆ ~JObjectIterator()

template<class T>
virtual JLANG::JObjectIterator< T >::~JObjectIterator ( )
inlinevirtual

Virtual destructor.

Definition at line 62 of file JObjectIterator.hh.

63  {}

Member Function Documentation

◆ hasNext()

template<class T>
virtual bool JLANG::JObjectIterator< T >::hasNext ( )
pure virtual

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implemented in JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >, JLANG::JNullIterator< T >, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner<>, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JHead_t >, JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >, JROOT::JRootFileReader< T, false >, JGIZMO::JMarkerAttributes, JGIZMO::JLineAttributes, JSUPPORT::JTriggeredFileScanner< JTypelist_t >, JLANG::JObjectSampler< T, JSampler_t >, JLANG::JSTDObjectIterator< T >, JLANG::JObjectSampler< JDAQSummaryslice, JRandomSampler >, JROOT::JTreeReaderObjectIterator< T >, JLANG::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, JLANG::JObjectMultiplexer< JDerived_t, JBase_t >, JLANG::JObjectMultiplexer< JHead_t, JBase_t >, JLANG::JObjectMultiplexer< JTail_t, JBase_t >, JLANG::JAbstractObjectIterator< T >, JLANG::JAbstractObjectIterator< Head >, JLANG::JAbstractObjectIterator< JTail_t >, JLANG::JAbstractObjectIterator< JHead_t >, JLANG::JAbstractObjectIterator< JTriggerParameters >, JLANG::JAbstractObjectIterator< JPhotonPath >, JLANG::JAbstractObjectReader< T >, JLANG::JConversionIterator< JInput_t, JOutput_t >, JLANG::JAbstractObjectReader< const T >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, and JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JTypelist_t > >.

◆ next()

template<class T>
virtual const pointer_type& JLANG::JObjectIterator< T >::next ( )
pure virtual

Get next element.

Returns
pointer to element

Implemented in JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >, JLANG::JNullIterator< T >, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner<>, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JHead_t >, JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >, JROOT::JRootFileReader< T, false >, JGIZMO::JMarkerAttributes, JLANG::JObjectSampler< T, JSampler_t >, JLANG::JObjectSampler< JDAQSummaryslice, JRandomSampler >, JGIZMO::JLineAttributes, JLANG::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, JSUPPORT::JTriggeredFileScanner< JTypelist_t >, JROOT::JTreeReaderObjectIterator< T >, JLANG::JSTDObjectIterator< T >, JLANG::JObjectMultiplexer< JDerived_t, JBase_t >, JLANG::JObjectMultiplexer< JHead_t, JBase_t >, JLANG::JObjectMultiplexer< JTail_t, JBase_t >, JLANG::JAbstractObjectIterator< T >, JLANG::JAbstractObjectIterator< Head >, JLANG::JAbstractObjectIterator< JTail_t >, JLANG::JAbstractObjectIterator< JHead_t >, JLANG::JAbstractObjectIterator< JTriggerParameters >, JLANG::JAbstractObjectIterator< JPhotonPath >, JSUPPORT::JParallelFileScanner< JTypeList< JDAQEvent, JTypelist_t >, JMultipleFileScanner >, JLANG::JAbstractObjectReader< T >, JLANG::JConversionIterator< JInput_t, JOutput_t >, JLANG::JAbstractObjectReader< const T >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, and JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JTypelist_t > >.

◆ skip()

template<class T>
virtual skip_type JLANG::JObjectIterator< T >::skip ( const skip_type  ns)
inlinevirtual

Friends And Related Function Documentation

◆ operator>>

template<class T>
JObjectIterator<T>& operator>> ( JObjectIterator< T > &  in,
JObjectOutput< T > &  out 
)
friend

Copy to object output.

Parameters
inobject iterator
outobject output
Returns
object iterator

Definition at line 107 of file JObjectIterator.hh.

109  {
110  while (in.hasNext()) {
111 
112  const T* p = in.next();
113 
114  if (p != NULL)
115  out.put(*p);
116  else
117  break;
118  }
119 
120  return in;
121  }

◆ operator| [1/5]

template<class T>
void operator| ( JObjectIterator< T > &  left,
JObjectOutput< T > &  right 
)
friend

Pipe terminator.

Parameters
leftobject iterator
rightobject output

Definition at line 130 of file JObjectIterator.hh.

131  {
132  left >> right;
133  }

◆ operator| [2/5]

template<class T>
JMultiPipe<T,0>& operator| ( JObjectIterator< T > &  left,
const JValve< T > &  right 
)
friend

Pipe operator.

Parameters
leftobject iterator
rightvalve
Returns
pipe object

Definition at line 143 of file JObjectIterator.hh.

144  {
145  JMultiPipe<T,0>::pipe.reset(new JMultiPipe<T,0>(left, right));
146 
147  return *JMultiPipe<T,0>::pipe;
148  }

◆ operator| [3/5]

template<class T>
JMultiPipe<T,0>& operator| ( JObjectIterator< T > &  left,
const JObjectSelector< T > &  right 
)
friend

Pipe operator.

Parameters
leftobject iterator
rightobject selector
Returns
pipe object

Definition at line 158 of file JObjectIterator.hh.

159  {
160  JMultiPipe<T,0>::pipe.reset(new JMultiPipe<T,0>(left, right));
161 
162  return *JMultiPipe<T,0>::pipe;
163  }

◆ operator| [4/5]

template<class T>
JMultiPipe<T,0>& operator| ( JObjectIterator< T > &  left,
const JRegulator right 
)
friend

Pipe operator.

Parameters
leftobject iterator
rightregulator
Returns
pipe object

Definition at line 173 of file JObjectIterator.hh.

174  {
175  JMultiPipe<T,0>::pipe.reset(new JMultiPipe<T,0>(left, right));
176 
177  return *JMultiPipe<T,0>::pipe;
178  }

◆ operator| [5/5]

template<class T>
template<class JBase_t >
JObjectMultiplexer<T, JBase_t>& operator| ( JObjectIterator< T > &  left,
const JType< JBase_t > &  right 
)
friend

Pipe operator.

Parameters
leftobject iterator
rightdata type
Returns
object multiplexer

Definition at line 189 of file JObjectIterator.hh.


The documentation for this class was generated from the following file:
JLANG::skip_type
unsigned int skip_type
Type definition for number of objects to skip.
Definition: JObjectIterator.hh:25
JLANG::JMultiPipe
Auxiliary class for object iteration via multiple pipes (e.g. operator | ..\ |).
Definition: JObjectIterator.hh:36
JLANG::JObjectIterator::hasNext
virtual bool hasNext()=0
Check availability of next element.
JLANG::JObjectMultiplexer
Auxiliary class for multiplexing object iterators.
Definition: JObjectIterator.hh:35
JLANG::JObjectOutput::put
virtual bool put(const T &object)=0
Object output.
JLANG::JObjectIterator::next
virtual const pointer_type & next()=0
Get next element.