1 #ifndef __JLANG__JOBJECTMULTIPLEXER__
2 #define __JLANG__JOBJECTMULTIPLEXER__
18 namespace JPP {
using namespace JLANG; }
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>
JObjectIterator< JBase_t >::pointer_type pointer_type
virtual bool hasNext() override
Check availability of next element.
JSinglePointer< JObjectMultiplexer< JDerived_t, JBase_t > > multiplexer_type
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
std::vector< event_type > data_type
JObjectIterator< JDerived_t > iterator_type
static multiplexer_type multiplexer
Multiplexer.
friend void operator|(JObjectMultiplexer &in, JObjectOutput< JBase_t > &out)
Pipe operator.
Interface of object iteration for a single data type.
Auxiliary class for multiplexing object iterators.
Auxiliary class to identify common base class in type list.
JObjectIterator< JBase_t >::pointer_type pointer_type
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
JValve< JDerived_t > valve_type
The template JSinglePointer class can be used to hold a pointer to an object.
JSinglePointer< JObjectMultiplexer< typelist, JBase_t > > multiplexer_type
JObjectIterator< JHead_t > iterator_type
virtual const pointer_type & next()=0
Get next element.
Auxiliary class for no type definition.
JTypeList< JHead_t, JTail_t > typelist
virtual bool hasNext()=0
Check availability of next element.
JObjectIterator< JBase_t >::pointer_type pointer_type
JValve< typelist > valve_type
virtual const pointer_type & next() override
Get next element.
static multiplexer_type multiplexer
Multiplexer.
virtual bool hasNext() override
Check availability of next element.
friend void operator|(JObjectMultiplexer &in, JObjectOutput< JBase_t > &out)
Pipe operator.
bool is_open() const
Check if valve is open.
virtual const pointer_type & next() override
Get next element.
JObjectIterator< typelist > iterator_type
JObjectMultiplexer(iterator_type &input, const valve_type &valve=valve_type())
Constructor.
JSinglePointer< JObjectMultiplexer< JHead_t, JBase_t > > multiplexer_type
JValve< JHead_t > valve_type