DiaDes  0.1
DIAgnosis of Discrete-Event System
Public Types | Public Member Functions | Private Attributes | List of all members
Diades::Utils::RangeMapperIterator< Mapper > Class Template Reference

#include <Iterator.hh>

Public Types

using MapStructure = typename Mapper::MapStructure
 
using Iterator = typename Mapper::Iterator
 
using Data = typename Mapper::Data
 
typedef const Datareference
 
using iterator_category = std::forward_iterator_tag
 

Public Member Functions

 RangeMapperIterator (const MapStructure &m, Iterator it)
 
 RangeMapperIterator (const RangeMapperIterator &it)
 
RangeMapperIteratoroperator= (const RangeMapperIterator &it)
 
RangeMapperIteratoroperator++ ()
 
RangeMapperIterator operator++ (int)
 
reference operator* () const
 
bool operator== (const RangeMapperIterator &it) const
 
bool operator!= (const RangeMapperIterator &it) const
 

Private Attributes

const MapStructure_mapStructure
 
Iterator _it
 

Detailed Description

template<typename Mapper>
class Diades::Utils::RangeMapperIterator< Mapper >

Suppose that Mapper is a functor that can associate to a Mapper::Iterator a Mapper::Data through Mapper::MapStructure then a RangeMapperIterator can iterate through a range of Mapper::Data objects

One example of use is the StatePropertyIdRangeIterator of a StateMachine in the automata library where the Mapper is StateMachine::GetStatePropertyId

See also
StateMachine::StatePropertyIdRangeIterator for instance

Another nice instance of use is in ManagedSynchronisedStateCreation in file diades/automata/experimental/StateCreation.hh In this example, the Iterator is simply a index through a vector

Iterator is not required to be dereferenced here (no * operator is needed). Only ++ ir needed.

Definition at line 43 of file Iterator.hh.

Member Typedef Documentation

◆ Data

template<typename Mapper>
using Diades::Utils::RangeMapperIterator< Mapper >::Data = typename Mapper::Data

Definition at line 48 of file Iterator.hh.

◆ Iterator

template<typename Mapper>
using Diades::Utils::RangeMapperIterator< Mapper >::Iterator = typename Mapper::Iterator

Definition at line 47 of file Iterator.hh.

◆ iterator_category

template<typename Mapper>
using Diades::Utils::RangeMapperIterator< Mapper >::iterator_category = std::forward_iterator_tag

Definition at line 55 of file Iterator.hh.

◆ MapStructure

template<typename Mapper>
using Diades::Utils::RangeMapperIterator< Mapper >::MapStructure = typename Mapper::MapStructure

Definition at line 46 of file Iterator.hh.

◆ reference

template<typename Mapper>
typedef const Data& Diades::Utils::RangeMapperIterator< Mapper >::reference

Definition at line 54 of file Iterator.hh.

Constructor & Destructor Documentation

◆ RangeMapperIterator() [1/2]

template<typename Mapper>
Diades::Utils::RangeMapperIterator< Mapper >::RangeMapperIterator ( const MapStructure m,
Iterator  it 
)
inlineexplicit

Definition at line 58 of file Iterator.hh.

◆ RangeMapperIterator() [2/2]

template<typename Mapper>
Diades::Utils::RangeMapperIterator< Mapper >::RangeMapperIterator ( const RangeMapperIterator< Mapper > &  it)
inline

Definition at line 62 of file Iterator.hh.

Member Function Documentation

◆ operator!=()

template<typename Mapper>
bool Diades::Utils::RangeMapperIterator< Mapper >::operator!= ( const RangeMapperIterator< Mapper > &  it) const
inline

Definition at line 99 of file Iterator.hh.

◆ operator*()

template<typename Mapper>
reference Diades::Utils::RangeMapperIterator< Mapper >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename Mapper>
RangeMapperIterator& Diades::Utils::RangeMapperIterator< Mapper >::operator++ ( )
inline

Definition at line 76 of file Iterator.hh.

References Diades::Utils::RangeMapperIterator< Mapper >::_it.

◆ operator++() [2/2]

template<typename Mapper>
RangeMapperIterator Diades::Utils::RangeMapperIterator< Mapper >::operator++ ( int  )
inline

Definition at line 82 of file Iterator.hh.

◆ operator=()

template<typename Mapper>
RangeMapperIterator& Diades::Utils::RangeMapperIterator< Mapper >::operator= ( const RangeMapperIterator< Mapper > &  it)
inline

◆ operator==()

template<typename Mapper>
bool Diades::Utils::RangeMapperIterator< Mapper >::operator== ( const RangeMapperIterator< Mapper > &  it) const
inline

Member Data Documentation

◆ _it

template<typename Mapper>
Iterator Diades::Utils::RangeMapperIterator< Mapper >::_it
private

◆ _mapStructure

template<typename Mapper>
const MapStructure* Diades::Utils::RangeMapperIterator< Mapper >::_mapStructure
private

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