1#ifndef __JLANG__JOBJECTMULTIPLEXER__
2#define __JLANG__JOBJECTMULTIPLEXER__
18namespace JPP {
using namespace JLANG; }
32 template<class JDerived_t, class JBase_t = typename JBaseClass<JDerived_t>::data_type>
107 template<
class JDerived_t,
class JBase_t>
123 template<
class JHead_t,
class JTail_t,
class JBase_t>
199 template<
class JHead_t,
class JTail_t,
class JBase_t>
207 template<
class JHead_t,
class JBase_t>
Auxiliary class to identify common base class in type list.
Interface of object iteration for a single data type.
virtual bool hasNext()=0
Check availability of next element.
virtual const pointer_type & next()=0
Get next element.
JObjectIterator< JHead_t > iterator_type
JSinglePointer< JObjectMultiplexer< JHead_t, JBase_t > > multiplexer_type
JValve< JHead_t > valve_type
JObjectIterator< JBase_t >::pointer_type pointer_type
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
virtual const pointer_type & next() override
Get next element.
static multiplexer_type multiplexer
Multiplexer.
friend void operator|(JObjectMultiplexer &in, JObjectOutput< JBase_t > &out)
Pipe operator.
JValve< typelist > valve_type
JObjectIterator< JBase_t >::pointer_type pointer_type
JObjectIterator< typelist > iterator_type
JTypeList< JHead_t, JTail_t > typelist
virtual bool hasNext() override
Check availability of next element.
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
JSinglePointer< JObjectMultiplexer< typelist, JBase_t > > multiplexer_type
Auxiliary class for multiplexing object iterators.
virtual bool hasNext() override
Check availability of next element.
JSinglePointer< JObjectMultiplexer< JDerived_t, JBase_t > > multiplexer_type
JObjectIterator< JBase_t >::pointer_type pointer_type
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
friend void operator|(JObjectMultiplexer &in, JObjectOutput< JBase_t > &out)
Pipe operator.
virtual const pointer_type & next() override
Get next element.
static multiplexer_type multiplexer
Multiplexer.
JValve< JDerived_t > valve_type
JObjectIterator< JDerived_t > iterator_type
Template interface of object output for single data type.
The template JSinglePointer class can be used to hold a pointer to an object.
Auxiliary class for selection of data type.
bool is_open() const
Check if valve is open.
Auxiliary classes and methods for language specific functionality.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary class for no type definition.