1 #ifndef __JLANG__JPIPE__
2 #define __JLANG__JPIPE__
72 if (
valve.is_open()) {
74 while (
in.hasNext()) {
145 template<
class JHead_t,
class JTail_t>
147 public JPipe<JHead_t>,
148 public JPipe<JTail_t>,
166 JPipe<JHead_t>(input, valve, selector, regulator),
167 JPipe<JTail_t>(input, valve, selector, regulator)
175 template<
class JHead_t>
177 public JPipe<JHead_t>
191 JPipe<JHead_t>(input, valve, selector, regulator)
202 template<
class T,
int N>
264 JPipe<
T>(input, valve, selector, regulator)
332 template<
class JBase_t>
347 template<
class T,
int N>
const JObjectSelector< T > & selector
JPipe(JObjectIterator< T > &input, const JValve< T > &valve, const JObjectSelector< T > &selector, const JRegulator ®ulator)
Constructor.
const JRegulator & regulator
static JSinglePointer< JMultiPipe< T, N > > pipe
Declaration of common pipe.
friend JMultiPipe< T, N+1 > & operator|(JMultiPipe &left, const JRegulator &right)
Recursive expansion of multi-pipe.
JObjectIterator< T > & in
JMultiPipe(JObjectIterator< T > &input, const JRegulator ®ulator)
Constructor.
unsigned int skip_type
Type definition for number of objects to skip.
JMultiPipe(JObjectIterator< T > &input, const JValve< T > &valve, const JObjectSelector< T > &selector, const JRegulator ®ulator)
Constructor.
JObjectIterator< T >::pointer_type pointer_type
Auxiliary class for a type holder.
Interface of object iteration for a single data type.
Auxiliary class for multiplexing object iterators.
bool is_valid() const
Check validity of pointer.
Auxiliary class for selection of data type.
Auxiliary class for object iteration via pipe, i.e. operator:
Auxiliary class for object iteration via multiple pipes, e.g. operator:
friend JObjectMultiplexer< T, JBase_t > & operator|(JMultiPipe &left, const JType< JBase_t > &right)
Pipe operator for multiplexing.
The template JSinglePointer class can be used to hold a pointer to an object.
Interface for selection of objects.
Interface for controlling object throughput.
const JValve< T > & valve
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Auxiliary class for no type definition.
virtual bool hasNext() override
Check availability of next element.
JPipe(JObjectIterator< typelist > &input, const JValve< typelist > &valve, const JObjectSelector< typelist > &selector, const JRegulator ®ulator)
Constructor.
virtual skip_type skip(const skip_type ns) override
Skip items.
JTypeList< JHead_t, JTail_t > typelist
JPipe(JObjectIterator< JHead_t > &input, const JValve< JHead_t > &valve, const JObjectSelector< JHead_t > &selector, const JRegulator ®ulator)
Constructor.
friend void operator|(JMultiPipe &left, JObjectOutput< T > &right)
Pipe terminator.
virtual bool accept() const
Accept.
JMultiPipe(JObjectIterator< T > &input)
Constructor.
Template interface of object output for single data type.
friend JMultiPipe< T, N+1 > & operator|(JMultiPipe &left, const JValve< T > &right)
Recursive expansion of multi-pipe.
virtual const pointer_type & next() override
Get next element.
JMultiPipe(JObjectIterator< T > &input, const JValve< T > &valve)
Constructor.
friend JMultiPipe< T, N+1 > & operator|(JMultiPipe &left, const JObjectSelector< T > &right)
Recursive expansion of multi-pipe.
JMultiPipe(JObjectIterator< T > &input, const JObjectSelector< T > &selector)
Constructor.
virtual void reset() override
Reset pointer.