Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JLANG::JSTDObjectIterator< T > Struct Template Reference

Implementation of object iteration from STD container. More...

#include <JSTDObjectIterator.hh>

Inheritance diagram for JLANG::JSTDObjectIterator< T >:
JLANG::JRewindableObjectIterator< JCategory< T::value_type, JClass< T::reference >::is_constant >::value_type > JLANG::JObjectIterator< T > JLANG::JRewindable< T >

Public Types

typedef JCategory< typenameT::value_type, JClass< typenameT::reference >::is_constant >::value_type value_type
 
typedef JRewindableObjectIterator< value_type >::pointer_type pointer_type
 

Public Member Functions

 JSTDObjectIterator ()
 Default constructor.
 
 JSTDObjectIterator (T begin, T end)
 Constructor.
 
virtual void rewind () override
 Rewind.
 
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) override
 Skip items.
 

Protected Attributes

__begin
 
__end
 
__i
 

Private Attributes

pointer_type ps
 

Detailed Description

template<class T>
struct JLANG::JSTDObjectIterator< T >

Implementation of object iteration from STD container.

Definition at line 25 of file JSTDObjectIterator.hh.

Member Typedef Documentation

◆ value_type

template<class T >
JCategory<typenameT::value_type,JClass<typenameT::reference>::is_constant>::value_type JLANG::JSTDObjectIterator< T >::value_type

Definition at line 30 of file JSTDObjectIterator.hh.

◆ pointer_type

template<class T >
JRewindableObjectIterator<value_type>::pointer_type JLANG::JSTDObjectIterator< T >::pointer_type

Definition at line 31 of file JSTDObjectIterator.hh.

Constructor & Destructor Documentation

◆ JSTDObjectIterator() [1/2]

template<class T >
JLANG::JSTDObjectIterator< T >::JSTDObjectIterator ( )
inline

Default constructor.

Definition at line 36 of file JSTDObjectIterator.hh.

37 {}

◆ JSTDObjectIterator() [2/2]

template<class T >
JLANG::JSTDObjectIterator< T >::JSTDObjectIterator ( T begin,
T end )
inline

Constructor.

Parameters
beginbegin of data
endend of data

Definition at line 46 of file JSTDObjectIterator.hh.

Member Function Documentation

◆ rewind()

template<class T >
virtual void JLANG::JSTDObjectIterator< T >::rewind ( )
inlineoverridevirtual

Rewind.

Implements JLANG::JRewindable< T >.

Definition at line 57 of file JSTDObjectIterator.hh.

58 {
59 __i = __begin;
60 }

◆ hasNext()

template<class T >
virtual bool JLANG::JSTDObjectIterator< T >::hasNext ( )
inlineoverridevirtual

Check availability of next element.

Returns
true if the iteration has more elements; else false

Implements JLANG::JObjectIterator< T >.

Definition at line 68 of file JSTDObjectIterator.hh.

69 {
70 return __i != __end;
71 }

◆ next()

template<class T >
virtual const pointer_type & JLANG::JSTDObjectIterator< T >::next ( )
inlineoverridevirtual

Get next element.

Returns
pointer to element

Implements JLANG::JObjectIterator< T >.

Definition at line 79 of file JSTDObjectIterator.hh.

80 {
81 if (hasNext())
82 ps.reset(&(*__i++));
83 else
84 ps.reset(NULL);
85
86 return ps;
87 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84
virtual bool hasNext() override
Check availability of next element.

◆ skip()

template<class T >
virtual skip_type JLANG::JSTDObjectIterator< T >::skip ( const skip_type ns)
inlineoverridevirtual

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented from JLANG::JObjectIterator< T >.

Definition at line 96 of file JSTDObjectIterator.hh.

97 {
98 using namespace std;
99
100 skip_type i = min(ns, (skip_type) distance(__i, __end));
101
102 advance(__i, i);
103
104 return i;
105 }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
unsigned int skip_type
Type definition for number of objects to skip.
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.

Member Data Documentation

◆ __begin

template<class T >
T JLANG::JSTDObjectIterator< T >::__begin
protected

Definition at line 108 of file JSTDObjectIterator.hh.

◆ __end

template<class T >
T JLANG::JSTDObjectIterator< T >::__end
protected

Definition at line 109 of file JSTDObjectIterator.hh.

◆ __i

template<class T >
T JLANG::JSTDObjectIterator< T >::__i
protected

Definition at line 110 of file JSTDObjectIterator.hh.

◆ ps

template<class T >
pointer_type JLANG::JSTDObjectIterator< T >::ps
private

Definition at line 112 of file JSTDObjectIterator.hh.


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