DiaDes  0.1
DIAgnosisofDiscrete-EventSystem
Public Types | Public Member Functions | Static Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Diades::Altarica::DomainIterator Class Reference

#include <Domains.hh>

Public Types

typedef DomainIterator self
 
typedef ptrdiff_t difference_type
 
typedef std::forward_iterator_tag iterator_category
 
typedef Value value_type
 
typedef const Valuepointer
 
typedef const Valuereference
 

Public Member Functions

 DomainIterator ()
 
 DomainIterator (const RangeDomain &range, const Value &value)
 
 DomainIterator (const EnumerationDomain &enumeration, const ValueEnumeration::const_iterator &itSet)
 
 DomainIterator (const BooleanDomain &booleans, int index)
 
 DomainIterator (const IntegerDomain &integers, int index)
 
 DomainIterator (const StructureDomain &structure, const map< Identifier, DomainIterator > &dataIt, const map< Identifier, DomainIterator > &beginIt, const map< Identifier, DomainIterator > &endIt)
 
 DomainIterator (const ArrayDomain &array, const vector< DomainIterator > &vectIt, const vector< DomainIterator > &beginIt, const vector< DomainIterator > &endIt)
 
 DomainIterator (const DomainIterator &it)
 
 ~DomainIterator ()
 
void clear ()
 
DomainIteratoroperator= (const DomainIterator &it)
 
reference operator* () const
 
pointer operator-> () const
 
selfoperator++ ()
 
self operator++ (int)
 
bool operator== (const self &it) const
 
bool operator!= (const self &it) const
 

Static Public Attributes

static self nullIterator
 

Private Types

enum  DomainType {
  NotADomain, Range, Enumeration, Integers,
  Booleans, Structure, Array
}
 

Private Member Functions

void goNext ()
 
void updateCurrentArray ()
 
void updateCurrentStructure ()
 
void copy (const DomainIterator &it)
 

Private Attributes

DomainType _type
 
union {
   const RangeDomain *   _range
 
   const EnumerationDomain *   _enumeration
 
   const BooleanDomain *   _booleans
 
   const IntegerDomain *   _integers
 
   const StructureDomain *   _structure
 
   const ArrayDomain *   _array
 
_domainData
 
vector< Value::ConstReference_current
 
ValueEnumeration::const_iterator _itSet
 
union {
   vector< DomainIterator > *   _array
 
   map< Identifier, DomainIterator > *   _structure
 
_dataIt
 
union {
   vector< DomainIterator > *   _array
 
   map< Identifier, DomainIterator > *   _structure
 
_endIt
 
union {
   vector< DomainIterator > *   _array
 
   map< Identifier, DomainIterator > *   _structure
 
_beginIt
 
int _index
 

Detailed Description

Definition at line 25 of file Domains.hh.

Member Typedef Documentation

◆ difference_type

Definition at line 30 of file Domains.hh.

◆ iterator_category

typedef std::forward_iterator_tag Diades::Altarica::DomainIterator::iterator_category

Definition at line 31 of file Domains.hh.

◆ pointer

Definition at line 33 of file Domains.hh.

◆ reference

Definition at line 34 of file Domains.hh.

◆ self

Definition at line 29 of file Domains.hh.

◆ value_type

Definition at line 32 of file Domains.hh.

Member Enumeration Documentation

◆ DomainType

Enumerator
NotADomain 
Range 
Enumeration 
Integers 
Booleans 
Structure 
Array 

Definition at line 37 of file Domains.hh.

Constructor & Destructor Documentation

◆ DomainIterator() [1/8]

Diades::Altarica::DomainIterator::DomainIterator ( )
inline

◆ DomainIterator() [2/8]

Diades::Altarica::DomainIterator::DomainIterator ( const RangeDomain range,
const Value value 
)
inline

Definition at line 77 of file Domains.hh.

References _domainData.

◆ DomainIterator() [3/8]

Diades::Altarica::DomainIterator::DomainIterator ( const EnumerationDomain enumeration,
const ValueEnumeration::const_iterator &  itSet 
)
inline

Definition at line 83 of file Domains.hh.

References _domainData.

◆ DomainIterator() [4/8]

Diades::Altarica::DomainIterator::DomainIterator ( const BooleanDomain booleans,
int  index 
)
inline

Definition at line 90 of file Domains.hh.

References _domainData.

◆ DomainIterator() [5/8]

Diades::Altarica::DomainIterator::DomainIterator ( const IntegerDomain integers,
int  index 
)
inline

Definition at line 97 of file Domains.hh.

References _domainData, and DomainIterator().

◆ DomainIterator() [6/8]

Diades::Altarica::DomainIterator::DomainIterator ( const StructureDomain structure,
const map< Identifier, DomainIterator > &  dataIt,
const map< Identifier, DomainIterator > &  beginIt,
const map< Identifier, DomainIterator > &  endIt 
)

◆ DomainIterator() [7/8]

Diades::Altarica::DomainIterator::DomainIterator ( const ArrayDomain array,
const vector< DomainIterator > &  vectIt,
const vector< DomainIterator > &  beginIt,
const vector< DomainIterator > &  endIt 
)

◆ DomainIterator() [8/8]

Diades::Altarica::DomainIterator::DomainIterator ( const DomainIterator it)
inline

Definition at line 116 of file Domains.hh.

References clear(), copy(), and ~DomainIterator().

◆ ~DomainIterator()

Diades::Altarica::DomainIterator::~DomainIterator ( )

Referenced by DomainIterator().

Member Function Documentation

◆ clear()

void Diades::Altarica::DomainIterator::clear ( )

Referenced by DomainIterator().

◆ copy()

void Diades::Altarica::DomainIterator::copy ( const DomainIterator it)
private

Referenced by DomainIterator(), and operator=().

◆ goNext()

void Diades::Altarica::DomainIterator::goNext ( )
private

Referenced by operator++().

◆ operator!=()

bool Diades::Altarica::DomainIterator::operator!= ( const self it) const
inline

Definition at line 146 of file Domains.hh.

◆ operator*()

reference Diades::Altarica::DomainIterator::operator* ( ) const

Referenced by operator=().

◆ operator++() [1/2]

self& Diades::Altarica::DomainIterator::operator++ ( )
inline

Definition at line 134 of file Domains.hh.

References goNext().

◆ operator++() [2/2]

self Diades::Altarica::DomainIterator::operator++ ( int  )
inline

Definition at line 139 of file Domains.hh.

References goNext(), and operator==().

◆ operator->()

pointer Diades::Altarica::DomainIterator::operator-> ( ) const

Referenced by operator=().

◆ operator=()

DomainIterator& Diades::Altarica::DomainIterator::operator= ( const DomainIterator it)
inline

Definition at line 122 of file Domains.hh.

References copy(), operator*(), and operator->().

◆ operator==()

bool Diades::Altarica::DomainIterator::operator== ( const self it) const

Referenced by operator++().

◆ updateCurrentArray()

void Diades::Altarica::DomainIterator::updateCurrentArray ( )
private

◆ updateCurrentStructure()

void Diades::Altarica::DomainIterator::updateCurrentStructure ( )
private

Member Data Documentation

◆ _array [1/2]

const ArrayDomain* Diades::Altarica::DomainIterator::_array

Definition at line 46 of file Domains.hh.

◆ _array [2/2]

vector<DomainIterator>* Diades::Altarica::DomainIterator::_array

Definition at line 52 of file Domains.hh.

◆ _beginIt

union { ... } Diades::Altarica::DomainIterator::_beginIt

◆ _booleans

const BooleanDomain* Diades::Altarica::DomainIterator::_booleans

Definition at line 43 of file Domains.hh.

◆ _current

vector<Value::ConstReference> Diades::Altarica::DomainIterator::_current
private

Definition at line 48 of file Domains.hh.

◆ _dataIt

union { ... } Diades::Altarica::DomainIterator::_dataIt

◆ _domainData

union { ... } Diades::Altarica::DomainIterator::_domainData

Referenced by DomainIterator().

◆ _endIt

union { ... } Diades::Altarica::DomainIterator::_endIt

◆ _enumeration

const EnumerationDomain* Diades::Altarica::DomainIterator::_enumeration

Definition at line 42 of file Domains.hh.

◆ _index

int Diades::Altarica::DomainIterator::_index
private

Definition at line 65 of file Domains.hh.

◆ _integers

const IntegerDomain* Diades::Altarica::DomainIterator::_integers

Definition at line 44 of file Domains.hh.

◆ _itSet

ValueEnumeration::const_iterator Diades::Altarica::DomainIterator::_itSet
private

Definition at line 49 of file Domains.hh.

◆ _range

const RangeDomain* Diades::Altarica::DomainIterator::_range

Definition at line 41 of file Domains.hh.

◆ _structure [1/2]

const StructureDomain* Diades::Altarica::DomainIterator::_structure

Definition at line 45 of file Domains.hh.

◆ _structure [2/2]

map<Identifier, DomainIterator>* Diades::Altarica::DomainIterator::_structure

Definition at line 53 of file Domains.hh.

◆ _type

DomainType Diades::Altarica::DomainIterator::_type
private

Definition at line 38 of file Domains.hh.

Referenced by Diades::Altarica::Domain::type().

◆ nullIterator

self Diades::Altarica::DomainIterator::nullIterator
static

Definition at line 35 of file Domains.hh.


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