Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
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 >:
JLANG::JObjectSampler< T, JSampler > JLANG::JRewindableObjectIterator< value_type > JLANG::JRewindableObjectIterator< JClass_t > JLANG::JRewindableObjectIterator< TAttLine > JLANG::JRewindableObjectIterator< TAttMarker > JLANG::JRewindableObjectIterator< JCategory< T::value_type, JClass< T::reference >::is_constant >::value_type > 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 45 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 58 of file JObjectIterator.hh.

Constructor & Destructor Documentation

◆ JObjectIterator()

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

Default constructor.

Definition at line 50 of file JObjectIterator.hh.

51  {}

◆ ~JObjectIterator()

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

Virtual destructor.

Definition at line 64 of file JObjectIterator.hh.

65  {}

Member Function Documentation

◆ hasNext()

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

◆ next()

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

◆ skip()

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

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented in JLANG::JSTDObjectIterator< T >, JLANG::JPipe< T >, JLANG::JPipe< JTail_t >, JLANG::JPipe< JHead_t >, and JLANG::JAbstractObjectReader< T >.

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  }
virtual const pointer_type & next()=0
Get next element.
virtual bool hasNext()=0
Check availability of next element.
unsigned int skip_type
Type definition for number of objects to skip.
std::vector< size_t > ns

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 109 of file JObjectIterator.hh.

111  {
112  while (in.hasNext()) {
113 
114  const T* p = in.next();
115 
116  if (p != NULL)
117  out.put(*p);
118  else
119  break;
120  }
121 
122  return in;
123  }
virtual bool put(const T &object)=0
Object output.

◆ 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 132 of file JObjectIterator.hh.

133  {
134  left >> right;
135  }

◆ 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 145 of file JObjectIterator.hh.

146  {
147  JMultiPipe<T,0>::pipe.reset(new JMultiPipe<T,0>(left, right));
148 
149  return *JMultiPipe<T,0>::pipe;
150  }
Auxiliary class for object iteration via multiple pipes, e.g. operator:
Definition: JPipe.hh:206

◆ 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 160 of file JObjectIterator.hh.

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

◆ 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 175 of file JObjectIterator.hh.

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

◆ 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 191 of file JObjectIterator.hh.

192  {
194 
196  }
Auxiliary class for multiplexing object iterators.

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