Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JLANG::JObjectMultiplexer< JDerived_t, JBase_t > Class Template Reference

Auxiliary class for multiplexing object iterators. More...

#include <JObjectMultiplexer.hh>

Inheritance diagram for JLANG::JObjectMultiplexer< JDerived_t, JBase_t >:
JLANG::JObjectIterator< T >

Public Types

typedef JObjectIterator< JDerived_t > iterator_type
 
typedef JObjectIterator< JBase_t >::pointer_type pointer_type
 
typedef JSinglePointer< JObjectMultiplexer< JDerived_t, JBase_t > > multiplexer_type
 
typedef JValve< JDerived_t > valve_type
 

Public Member Functions

 JObjectMultiplexer (iterator_type &input, const valve_type &valve=valve_type())
 Constructor.
 
virtual bool hasNext () override
 Check availability of next element.
 
virtual const pointer_typenext () override
 Get next element.
 
virtual skip_type skip (const skip_type ns)
 Skip items.
 

Public Attributes

valve_type valve
 

Static Public Attributes

static multiplexer_type multiplexer
 Multiplexer.
 

Private Attributes

iterator_typein
 
pointer_type ps
 

Friends

void operator| (JObjectMultiplexer &in, JObjectOutput< JBase_t > &out)
 Pipe operator.
 

Detailed Description

template<class JDerived_t, class JBase_t = typename JBaseClass<JDerived_t>::data_type>
class JLANG::JObjectMultiplexer< JDerived_t, JBase_t >

Auxiliary class for multiplexing object iterators.

The template argument JDerived_t refers to a list of multiple object iterators which are sequentially processed.
The template argument JBase_t refers to a single object iterator which provides for a common interface to the multiple object iterators.

This class implements the JLANG::JObjectIterator interface.

Definition at line 33 of file JObjectMultiplexer.hh.

Member Typedef Documentation

◆ iterator_type

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
JObjectIterator<JDerived_t> JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::iterator_type

Definition at line 38 of file JObjectMultiplexer.hh.

◆ pointer_type

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
JObjectIterator<JBase_t>::pointer_type JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::pointer_type

Definition at line 39 of file JObjectMultiplexer.hh.

◆ multiplexer_type

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
JSinglePointer< JObjectMultiplexer<JDerived_t, JBase_t> > JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::multiplexer_type

Definition at line 40 of file JObjectMultiplexer.hh.

◆ valve_type

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
JValve<JDerived_t> JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::valve_type

Definition at line 41 of file JObjectMultiplexer.hh.

Constructor & Destructor Documentation

◆ JObjectMultiplexer()

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::JObjectMultiplexer ( iterator_type & input,
const valve_type & valve = valve_type() )
inline

Constructor.

Parameters
inputobject iterator
valvevalve

Definition at line 50 of file JObjectMultiplexer.hh.

51 :
52 valve(valve),
53 in(input)
54 {}

Member Function Documentation

◆ hasNext()

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
virtual bool JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::hasNext ( )
inlineoverridevirtual

Check availability of next element.

Returns
true if the valve is open and the iteration has more elements; else false

Implements JLANG::JObjectIterator< T >.

Reimplemented in JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >.

Definition at line 62 of file JObjectMultiplexer.hh.

63 {
64 if (valve.is_open())
65 return in.hasNext();
66 else
67 return false;
68 }
virtual bool hasNext()=0
Check availability of next element.
bool is_open() const
Check if valve is open.
Definition JValve.hh:52

◆ next()

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
virtual const pointer_type & JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::next ( )
inlineoverridevirtual

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Reimplemented in JLANG::JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t >.

Definition at line 76 of file JObjectMultiplexer.hh.

77 {
78 ps.reset(in.next());
79
80 return ps;
81 }
virtual const pointer_type & next()=0
Get next element.
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ skip()

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

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented in JLANG::JAbstractObjectReader< T >, JLANG::JAbstractObjectReader< const event_type >, JLANG::JAbstractObjectReader< Evt >, JLANG::JAbstractObjectReader< JDAQSummaryslice >, JLANG::JAbstractObjectReader< JHead_t >, JLANG::JAbstractObjectReader< JTail_t >, JLANG::JAbstractObjectReader< JTypeList< JDAQEvent, JNullType > >, JLANG::JAbstractObjectReader< KM3NETDAQ::JDAQEvent >, JLANG::JPipe< T >, JLANG::JPipe< JHead_t >, JLANG::JPipe< JTail_t >, JLANG::JSTDObjectIterator< T >, JROOT::JRootFileReader< T, false >, JROOT::JTreeReaderObjectIterator< T >, JSUPPORT::JMultipleFileScanner< T >, JSUPPORT::JMultipleFileScanner< Evt >, JSUPPORT::JMultipleFileScanner< JDAQSummaryslice >, JSUPPORT::JMultipleFileScanner< JHead_t >, JSUPPORT::JMultipleFileScanner< JTail_t >, JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JNullType > >, JSUPPORT::JMultipleFileScanner< JTypeList< JHead_t, JTail_t > >, JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent >, JSUPPORT::JMultipleFileScanner<>, JSUPPORT::JSingleFileScanner< T >, JSUPPORT::JSingleFileScanner< JHead_t >, JSUPPORT::JSingleFileScanner< JTail_t >, JSUPPORT::JSingleFileScanner< JTypeList< JHead_t, JTail_t > >, and JSUPPORT::JSingleFileScanner<>.

Definition at line 90 of file JObjectIterator.hh.

91 {
92 skip_type i = 0;
93
94 for ( ; i != ns && hasNext(); ++i) {
95 next();
96 }
97
98 return i;
99 }
unsigned int skip_type
Type definition for number of objects to skip.

Friends And Related Symbol Documentation

◆ operator|

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
void operator| ( JObjectMultiplexer< JDerived_t, JBase_t > & in,
JObjectOutput< JBase_t > & out )
friend

Pipe operator.

Parameters
inobject multiplexer
outobject output

Definition at line 90 of file JObjectMultiplexer.hh.

91 {
92 in >> out;
93 }

Member Data Documentation

◆ valve

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
valve_type JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::valve

Definition at line 95 of file JObjectMultiplexer.hh.

◆ multiplexer

template<class JHead_t , class JTail_t , class JBase_t >
JSinglePointer< JObjectMultiplexer< JTypeList< JHead_t, JTail_t >, JBase_t > > JLANG::JObjectMultiplexer< JHead_t, JTail_t, JBase_t >::multiplexer
static

Multiplexer.

Definition at line 97 of file JObjectMultiplexer.hh.

◆ in

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
iterator_type& JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::in
private

Definition at line 100 of file JObjectMultiplexer.hh.

◆ ps

template<class JDerived_t , class JBase_t = typename JBaseClass<JDerived_t>::data_type>
pointer_type JLANG::JObjectMultiplexer< JDerived_t, JBase_t >::ps
private

Definition at line 101 of file JObjectMultiplexer.hh.


The documentation for this class was generated from the following files: