DiaDes  0.1
DIAgnosis of Discrete-Event System
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > Class Template Reference

#include <StateMachine.hh>

Classes

class  GetStatePropertyId
 

Public Types

using StatePropertyId = _StatePropertyId
 
using EventPropertyId = _EventPropertyId
 
using NullStatePropertyId = _NullStatePropertyId
 
using NullEventPropertyId = _NullEventPropertyId
 
using Id = size_t
 
using Exception = Diades::Utils::Exception< StateMachine >
 
typedef Diades::Graph::Node State
 
typedef Diades::Graph::Edge Transition
 
typedef Diades::Graph::NodeIterator StateIterator
 
typedef Diades::Graph::EdgeIterator TransitionIterator
 
typedef list< Transition >::const_iterator EventTransitionIterator
 
typedef unordered_set< State >::const_iterator InitialStateIterator
 
typedef Diades::Graph::InEdgeIterator InputTransitionIterator
 
typedef Diades::Graph::OutEdgeIterator OutputTransitionIterator
 
typedef vector< EventPropertyId >::const_iterator EventPropertyIdIterator
 
typedef unordered_set< Transition >::const_iterator OutputEventTransitionIterator
 
typedef unordered_set< Transition >::const_iterator InputEventTransitionIterator
 
typedef unordered_set< State >::const_iterator LabelledStateIterator
 
template<typename StateIterator >
using StatePropertyIdRangeIterator = Diades::Utils::RangeMapperIterator< GetStatePropertyId< StateIterator > >
 
typedef std::vector< StatePropertyId >::const_iterator StatePropertyIdIterator
 

Public Member Functions

 StateMachine ()
 
 StateMachine (const StateMachine &machine)
 
StateMachineoperator= (const StateMachine &machine)
 
virtual ~StateMachine ()
 
bool operator== (const StateMachine &machine) const
 
bool operator!= (const StateMachine &machine) const
 
virtual void clear ()
 
Id id () const
 
Id setId (Id identifier)
 
Graph::Graphbehaviour ()
 
const Graph::Graphbehaviour () const
 
bool isEmpty () const
 
bool isValid () const
 
const string & setName (const string &name)
 
const string & name () const
 
EventPropertyId nullEvent () const
 
bool isNullEvent (EventPropertyId evt) const
 
void copyEventPropertyId (const StateMachine &m, const EventPropertyId &event)
 
void copyEventPropertyIds (const StateMachine &m)
 
virtual void insertEventPropertyId (const EventPropertyId &event)
 
unsigned numberOfEvents () const
 
template<typename EventIter >
void insertEvent (EventIter start, EventIter end)
 
const EventPropertyIdgetEvent (Transition t) const
 
const vector< EventPropertyId > & events () const
 
EventPropertyIdIterator eventBegin () const
 
EventPropertyIdIterator eventEnd () const
 
bool containsEvent (const EventPropertyId &e) const
 
void replaceEvent (const EventPropertyId &e1, const EventPropertyId &e2)
 
void removeEvent (const EventPropertyId &e)
 
State newState ()
 
std::pair< State, bool > newState (const StatePropertyId &sProperty)
 
const StatePropertyIdgetStatePropertyId (State state) const
 
bool setStatePropertyId (State state, const StatePropertyId &sProperty)
 
State getState (const StatePropertyId &sProperty) const
 
virtual void deleteState (State state)
 
void deleteState (StateIterator start, StateIterator end)
 
unsigned numberOfStates () const
 
StateIterator stateBegin () const
 
StateIterator stateEnd () const
 
StatePropertyIdIterator statePropertyIdBegin () const
 
StatePropertyIdIterator statePropertyIdEnd () const
 
template<typename StateIterator >
StatePropertyIdRangeIterator< StateIteratorstatePropertyIdRangeIterator (StateIterator iterator) const
 
void setInitial (State state)
 
void unsetInitial (State state)
 
void setAllInitialStates ()
 
void clearAllInitialStates ()
 
void swapInitialState (State state)
 swap the status of the state as initial/non-initial More...
 
InitialStateIterator initialStateBegin () const
 
InitialStateIterator initialStateEnd () const
 
unsigned numberOfInitialStates () const
 
bool isInitial (State state) const
 
bool isNullState (State state) const
 
Transition newTransition (State source, State target, const EventPropertyId &event)
 
Transition newTransition (const StatePropertyId &source, const StatePropertyId &target, const EventPropertyId &event)
 
void deleteTransition (Transition t)
 
void deleteTransition (TransitionIterator start, TransitionIterator end)
 
void deleteTransition (EventTransitionIterator start, EventTransitionIterator end)
 
LabelledStateIterator beginOfSourceStateOfEvent (const EventPropertyId &e) const
 
LabelledStateIterator endOfSourceStateOfEvent (const EventPropertyId &e) const
 
LabelledStateIterator beginOfTargetStateOfEvent (const EventPropertyId &e) const
 
LabelledStateIterator endOfTargetStateOfEvent (const EventPropertyId &e) const
 
EventTransitionIterator eventTransitionBegin (const EventPropertyId &e) const
 
EventTransitionIterator eventTransitionEnd (const EventPropertyId &e) const
 
OutputEventTransitionIterator outputEventTransitionBegin (State s, const EventPropertyId &e) const
 
OutputEventTransitionIterator outputEventTransitionEnd (State s, const EventPropertyId &e) const
 
InputEventTransitionIterator inputEventTransitionBegin (State s, const EventPropertyId &e) const
 
InputEventTransitionIterator inputEventTransitionEnd (State s, const EventPropertyId &e) const
 
TransitionIterator transitionBegin () const
 
TransitionIterator transitionEnd () const
 
OutputTransitionIterator outputTransitionBegin (State s) const
 
OutputTransitionIterator outputTransitionEnd (State s) const
 
InputTransitionIterator inputTransitionBegin (State s) const
 
InputTransitionIterator inputTransitionEnd (State s) const
 
unsigned numberOfTransitions () const
 

Static Public Member Functions

static string defaultStateMachineName ()
 
static string typeName ()
 

Public Attributes

const StatePropertyId nullStatePropertyId = NullStatePropertyId().nullValue()
 
const EventPropertyId nullEventPropertyId = NullEventPropertyId().nullValue()
 

Protected Member Functions

EventPropertyId getEventFromIndex (size_t index) const
 
virtual void eraseEventPropertyId (size_t eventIndex)
 
State getStateFromIndex (StatePropertyIdIndex index) const
 
StatePropertyIdIndex getIndexOfState (State s) const
 

Protected Attributes

Diades::Graph::Graph _behav
 
unordered_set< State_initial
 
Diades::Graph::NodeMap< bool > _isInitial
 

Private Types

using StatePropertyIdIndex = size_t
 
using EventPropertyIdIndex = size_t
 

Private Member Functions

void finaliseTransitions (const StateMachine &machine)
 
void finaliseInitialStates (const StateMachine &machine)
 
void finaliseStatePropertyIds (const StateMachine &machine)
 
void finaliseEventPropertyIds (const StateMachine &machine)
 
void finaliseEventPropertyIdRemoval (const EventPropertyId &e)
 
void eraseStatePropertyId (State state)
 

Private Attributes

const size_t _nullStatePropertyIdIndex = std::numeric_limits<StatePropertyIdIndex>::max()
 
string _name
 
Id _id
 
vector< EventPropertyId_eventPropertyIds
 
unordered_map< EventPropertyId, EventPropertyIdIndex_indexOfEventPropertyId
 
Diades::Graph::EdgeMap< EventPropertyIdIndex_eventPropertyIdIndexOfTransition
 
vector< StatePropertyId_statePropertyIds
 
vector< State_stateOfStatePropertyIdIndex
 
unordered_map< StatePropertyId, StatePropertyIdIndex_indexOfStatePropertyIdIndex
 
Diades::Graph::NodeMap< StatePropertyIdIndex_statePropertyIdIndexOfState
 
unordered_set< State_nullStatePropertyIdStates
 
vector< Diades::Graph::NodeMap< unordered_set< Transition > > > _transitionsWithTarget
 
vector< Diades::Graph::NodeMap< unordered_set< Transition > > > _transitionsWithSource
 
vector< unordered_set< State > > _sourceWithEventPropertyIdIndex
 
vector< unordered_set< State > > _targetWithEventPropertyIdIndex
 
vector< list< Transition > > _transitionsWithEventPropertyIdIndex
 

Detailed Description

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
class Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >

The template class StateMachine aims at defining a generic finite state machine. Each state of the machine owns a property of type StatePropertyId. A StatePropertyId should be a copyable, hashable type typically something that is an identifier usually it is a string if there is no StatePropertyManager involved with a given Statemachine but it can be a size_t that links to a StateProperty in a StatePropertyManager.

Each transition is associated with an information of type EventPropertyId. By construction a StatePropertyId is the property of one state and only one. In this sense, a StatePropertyId fully characterise a state of of the StateMachine. A StateMachine may have several initial states.

Definition at line 46 of file StateMachine.hh.

Member Typedef Documentation

◆ EventPropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::EventPropertyId = _EventPropertyId

Definition at line 88 of file StateMachine.hh.

◆ EventPropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::EventPropertyIdIndex = size_t
private

Definition at line 115 of file StateMachine.hh.

◆ EventPropertyIdIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef vector<EventPropertyId>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::EventPropertyIdIterator

Definition at line 151 of file StateMachine.hh.

◆ EventTransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef list<Transition>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::EventTransitionIterator

Definition at line 147 of file StateMachine.hh.

◆ Exception

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::Exception = Diades::Utils::Exception<StateMachine>

Definition at line 139 of file StateMachine.hh.

◆ Id

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::Id = size_t

Definition at line 91 of file StateMachine.hh.

◆ InitialStateIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef unordered_set<State>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::InitialStateIterator

Definition at line 148 of file StateMachine.hh.

◆ InputEventTransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef unordered_set<Transition>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::InputEventTransitionIterator

Definition at line 153 of file StateMachine.hh.

◆ InputTransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::InEdgeIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::InputTransitionIterator

Definition at line 149 of file StateMachine.hh.

◆ LabelledStateIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef unordered_set<State>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::LabelledStateIterator

Definition at line 154 of file StateMachine.hh.

◆ NullEventPropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::NullEventPropertyId = _NullEventPropertyId

Definition at line 90 of file StateMachine.hh.

◆ NullStatePropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::NullStatePropertyId = _NullStatePropertyId

Definition at line 89 of file StateMachine.hh.

◆ OutputEventTransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef unordered_set<Transition>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::OutputEventTransitionIterator

Definition at line 152 of file StateMachine.hh.

◆ OutputTransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::OutEdgeIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::OutputTransitionIterator

Definition at line 150 of file StateMachine.hh.

◆ State

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::Node Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::State

Definition at line 143 of file StateMachine.hh.

◆ StateIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::NodeIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StateIterator

Definition at line 145 of file StateMachine.hh.

◆ StatePropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StatePropertyId = _StatePropertyId

Definition at line 87 of file StateMachine.hh.

◆ StatePropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
using Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StatePropertyIdIndex = size_t
private

Definition at line 102 of file StateMachine.hh.

◆ StatePropertyIdIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef std::vector<StatePropertyId>::const_iterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StatePropertyIdIterator

Definition at line 1007 of file StateMachine.hh.

◆ StatePropertyIdRangeIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
template<typename StateIterator >
Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StatePropertyIdRangeIterator

It is a template class that asks for an iterator over a range of State in a StateMachine and implements an iterator on the StatePropertyId's of the range of State.

Definition at line 234 of file StateMachine.hh.

◆ Transition

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::Edge Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::Transition

Definition at line 144 of file StateMachine.hh.

◆ TransitionIterator

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
typedef Diades::Graph::EdgeIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::TransitionIterator

Definition at line 146 of file StateMachine.hh.

Constructor & Destructor Documentation

◆ StateMachine() [1/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StateMachine ( )
inline

Default constructor: create an invalid state machine

Definition at line 247 of file StateMachine.hh.

◆ StateMachine() [2/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::StateMachine ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inline

Copy contructor

Parameters
machinethe machine to copy

Definition at line 275 of file StateMachine.hh.

◆ ~StateMachine()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
virtual Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::~StateMachine ( )
inlinevirtual

Destructor

Definition at line 330 of file StateMachine.hh.

Member Function Documentation

◆ beginOfSourceStateOfEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
LabelledStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::beginOfSourceStateOfEvent ( const EventPropertyId e) const
inline

State iterator on states that are the sources of a given event

Parameters
ean Event
Returns
a forward iterator (begin)
Precondition
the event e must belong to the StateMachine

Definition at line 1332 of file StateMachine.hh.

◆ beginOfTargetStateOfEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
LabelledStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::beginOfTargetStateOfEvent ( const EventPropertyId e) const
inline

State iterator on states that are the targets of a given event

Parameters
ean Event
Returns
a forward iterator (begin)
Precondition
the event must belong to the StateMachine

Definition at line 1358 of file StateMachine.hh.

◆ behaviour() [1/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Graph::Graph& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::behaviour ( )
inline

◆ behaviour() [2/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const Graph::Graph& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::behaviour ( ) const
inline
Returns
the underlying behaviour

Definition at line 428 of file StateMachine.hh.

◆ clear()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
virtual void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::clear ( )
inlinevirtual

◆ clearAllInitialStates()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::clearAllInitialStates ( )
inline

unset any potential initial state

Definition at line 1088 of file StateMachine.hh.

◆ containsEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::containsEvent ( const EventPropertyId e) const
inline
Returns
true if the event is in the StateMachine
Precondition
e is valid linear search
Todo:
make it better

Definition at line 674 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::addEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::beginOfSourceStateOfEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::beginOfTargetStateOfEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::endOfSourceStateOfEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::endOfTargetStateOfEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::eventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::eventTransitionEnd(), Diades::Automata::Experimental::SynchronisationRules< StateMachine >::getSynchronisationEvents(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputEventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputEventTransitionEnd(), Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::insertEventPropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::insertEventPropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputEventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputEventTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::replaceEvent(), Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setFaulty(), and Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setNormal().

◆ copyEventPropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::copyEventPropertyId ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  m,
const EventPropertyId event 
)
inline

Copy the EventPropertyId of a machine into the current one

Parameters
ma StateMachine
eventan EventPropertyId this method is used especially in Determine, Abstract, ... As it is virtual, it ensures that events and their properties are properly copied whatever the derived class calls it.

Definition at line 517 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::copyEventPropertyIds().

◆ copyEventPropertyIds()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::copyEventPropertyIds ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  m)
inline

Copy all the EventPropertyIds of a machine into the current one

Parameters
ma StateMachine this method is used especially in Determine, Abstract, ... As it is virtual, it ensures that events and their properties are properly copied whatever the derived class calls it.

Definition at line 530 of file StateMachine.hh.

◆ defaultStateMachineName()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
static string Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::defaultStateMachineName ( )
inlinestatic

◆ deleteState() [1/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
virtual void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteState ( State  state)
inlinevirtual

◆ deleteState() [2/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteState ( StateIterator  start,
StateIterator  end 
)
inline
Parameters
startStateIterator
endStateIterator Delete the states in the range [start,end) in the StateMachine
Precondition
[start,end) must be part of the StateMachine

Definition at line 967 of file StateMachine.hh.

◆ deleteTransition() [1/3]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteTransition ( Transition  t)
inline

◆ deleteTransition() [2/3]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteTransition ( TransitionIterator  start,
TransitionIterator  end 
)
inline

Transition deletions

Parameters
startTransIterator
endTransIterator
Precondition
[start, end) must belong to the StateMachine

Definition at line 1302 of file StateMachine.hh.

◆ deleteTransition() [3/3]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::deleteTransition ( EventTransitionIterator  start,
EventTransitionIterator  end 
)
inline

Transition deletions

Parameters
startTransitionEventIterator
endTransitionEventIterator
Precondition
[start, end) must belong to the StateMachine

Definition at line 1318 of file StateMachine.hh.

◆ endOfSourceStateOfEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
LabelledStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::endOfSourceStateOfEvent ( const EventPropertyId e) const
inline

State iterator on states that are the sources of a given event

Parameters
ean Event
Returns
a forward iterator (end)
Precondition
the event must belong to the StateMachine

Definition at line 1345 of file StateMachine.hh.

◆ endOfTargetStateOfEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
LabelledStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::endOfTargetStateOfEvent ( const EventPropertyId e) const
inline

State iterator on states that are the targets of a given event

Parameters
ean Event
Returns
a forward iterator (end)
Precondition
the event must belong to the StateMachine

Definition at line 1371 of file StateMachine.hh.

◆ eraseEventPropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
virtual void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eraseEventPropertyId ( size_t  eventIndex)
inlineprotectedvirtual

◆ eraseStatePropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eraseStatePropertyId ( State  state)
inlineprivate

Clean up the StateProperty associated to state

Parameters
statea non-null State
Postcondition
state becomes null. The vector of properties remains tidy (no holes)

Definition at line 1664 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::setStatePropertyId().

◆ eventBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventPropertyIdIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eventBegin ( ) const
inline

◆ eventEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventPropertyIdIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eventEnd ( ) const
inline

◆ events()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const vector<EventPropertyId>& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::events ( ) const
inline

◆ eventTransitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eventTransitionBegin ( const EventPropertyId e) const
inline

Transition iterator

Parameters
ean Event
Returns
a forward iterator (begin)
Precondition
the event must belong to the StateMachine

Definition at line 1384 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::removeEvent().

◆ eventTransitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eventTransitionEnd ( const EventPropertyId e) const
inline

Transition iterator

Parameters
ean Event
Returns
a forward iterator (end)
Precondition
the event must belong to the StateMachine

Definition at line 1397 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::removeEvent().

◆ finaliseEventPropertyIdRemoval()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::finaliseEventPropertyIdRemoval ( const EventPropertyId e)
inlineprivate

Finalise the removal of the event e

Parameters
e
Precondition
no transition should be labeled with e

Definition at line 1653 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::replaceEvent().

◆ finaliseEventPropertyIds()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::finaliseEventPropertyIds ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inlineprivate

◆ finaliseInitialStates()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::finaliseInitialStates ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inlineprivate

◆ finaliseStatePropertyIds()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::finaliseStatePropertyIds ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inlineprivate

◆ finaliseTransitions()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::finaliseTransitions ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inlineprivate

◆ getEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const EventPropertyId& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEvent ( Transition  t) const
inline

◆ getEventFromIndex()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventPropertyId Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getEventFromIndex ( size_t  index) const
inlineprotected
Parameters
indexan index of an EventPropertyId
Returns
the EventPropertyId at the given index

Definition at line 220 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::FaultyEventStateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::eraseEventPropertyId().

◆ getIndexOfState()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StatePropertyIdIndex Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getIndexOfState ( State  s) const
inlineprotected

◆ getState()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
State Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getState ( const StatePropertyId sProperty) const
inline
Parameters
'sProperty'a StateProperty
Returns
the State associated to the 'sProperty' an invalid state otherwise
Precondition
if sProperty == StateProperty(), an invalid state is returned

Definition at line 892 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::explainFromStates(), tagStates(), and trimDdAutStates2().

◆ getStateFromIndex()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
State Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStateFromIndex ( StatePropertyIdIndex  index) const
inlineprotected

◆ getStatePropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const StatePropertyId& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::getStatePropertyId ( State  state) const
inline

◆ id()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Id Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::id ( ) const
inline
Returns
the identifier of the StateMachine

The identifier is just a way to identify a StateMachine in a given context. The StateMachine id can be modified at any time it is NOT an absolute and unique identifier

Definition at line 398 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::operator=().

◆ initialStateBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InitialStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateBegin ( ) const
inline

◆ initialStateEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InitialStateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::initialStateEnd ( ) const
inline

◆ inputEventTransitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InputEventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputEventTransitionBegin ( State  s,
const EventPropertyId e 
) const
inline

Transition iterator on the input transitions of a given state labelled with a given event

Parameters
sa State
ean Event
Returns
a forward iterator (begin)
Precondition
the state must belong to the StateMachine
the event must belong to the StateMachine

Definition at line 1447 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::explainFromStates(), and Diades::Automata::Experimental::BeliefState< StateMachine >::prevBeliefState().

◆ inputEventTransitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InputEventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputEventTransitionEnd ( State  s,
const EventPropertyId e 
) const
inline

Transition iterator on the input transitions of a given state labelled with a given event

Parameters
sa State
ean Event
Returns
a forward iterator (end)
Precondition
the state must belong to the StateMachine
the event must belong to the StateMachine

Definition at line 1464 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::explainFromStates(), and Diades::Automata::Experimental::BeliefState< StateMachine >::prevBeliefState().

◆ inputTransitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InputTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputTransitionBegin ( State  s) const
inline

◆ inputTransitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
InputTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::inputTransitionEnd ( State  s) const
inline

◆ insertEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
template<typename EventIter >
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::insertEvent ( EventIter  start,
EventIter  end 
)
inline

Insert the range of events if not already inserted If not already inserted the inserted event is considered as normal. To change it as faulty use setFaulty(event)

Parameters
startEventIterator
endEventIterator

Definition at line 608 of file StateMachine.hh.

◆ insertEventPropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
virtual void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::insertEventPropertyId ( const EventPropertyId event)
inlinevirtual

◆ isEmpty()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isEmpty ( ) const
inline

◆ isInitial()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isInitial ( State  state) const
inline

◆ isNullEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isNullEvent ( EventPropertyId  evt) const
inline
Parameters
evtan EventPropertyId
Returns
true iff evt is null

Definition at line 503 of file StateMachine.hh.

◆ isNullState()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isNullState ( State  state) const
inline

◆ isValid()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::isValid ( ) const
inline
Returns
true if the machine is valid A StateMachine is valid if it is not empty and its name is not the default one. Initial states are not required, Null State is acceptable.

Definition at line 449 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::SynchronisationRules< StateMachine >::getSynchronisationEvents(), and Diades::Automata::Experimental::FiniteAutomaton< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::isValid().

◆ name()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const string& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::name ( ) const
inline

◆ newState() [1/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
State Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newState ( )
inline

Create a new null State in the machine

Returns
the State associated with no property
Postcondition
This method is available for flexibility purposes A State should always own a property. But it may happen that the State is created before the Property is actually known
nullState(result) is true
a null state can be assigned to a property with setProperty

Definition at line 748 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::AutStateCreator::newState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newState(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newTransition().

◆ newState() [2/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
std::pair<State, bool> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newState ( const StatePropertyId sProperty)
inline

Create a new State in the machine

Parameters
propertythe associated property of the state (the Id pof the property)
Returns
the State associated with the property, the boolean asserts that the State has been effectively created. If the boolean is false, it means that the State was already present and is simply returned.
Postcondition
if a State associated with the property is present in the StateMachine, no new State is created (bool is false), the present one is returned.

Definition at line 768 of file StateMachine.hh.

◆ newTransition() [1/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Transition Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newTransition ( State  source,
State  target,
const EventPropertyId event 
)
inline
Parameters
sourcea State of the StateMachine
targeta State of the StateMachine
eventan Event If the event is not yet in the component, the event is set to be normal, use setFaulty to change this
Returns
the transition labeled with the Event event whose source is 'source' and target is 'target'
Precondition
source and target must belong to the StateMachine
event must be valid
Postcondition
no transition is created if such a transition already exists

Definition at line 1199 of file StateMachine.hh.

Referenced by consolidateWithSafeAlternatives(), Diades::Automata::Experimental::explainFromStates(), Diades::Automata::Experimental::insertAutFsms(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newTransition().

◆ newTransition() [2/2]

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Transition Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::newTransition ( const StatePropertyId source,
const StatePropertyId target,
const EventPropertyId event 
)
inline
Parameters
sourcea StateProperty
targeta StateProperty
eventan Event, if the event is not yet in the state machine, the event is set to be normal, use setFaulty to change this
Returns
the transition labelled with the Event event whose source is 'source' and target is 'target'
Precondition
event must be valid
Postcondition
no transition is created if such a transition already exists

Definition at line 1257 of file StateMachine.hh.

◆ nullEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
EventPropertyId Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::nullEvent ( ) const
inline
Returns
the null Event

Definition at line 492 of file StateMachine.hh.

◆ numberOfEvents()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unsigned Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfEvents ( ) const
inline

◆ numberOfInitialStates()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unsigned Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfInitialStates ( ) const
inline

◆ numberOfStates()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unsigned Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfStates ( ) const
inline

◆ numberOfTransitions()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unsigned Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::numberOfTransitions ( ) const
inline

Number of transitions

Returns
the number of transitions of the StateMachine

Definition at line 1548 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::toDotHeader().

◆ operator!=()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::operator!= ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine) const
inline

Difference operator

Parameters
machinethe StateMachine to compare
Returns
true if and only if the current StateMachine is NOT THE SAME StateMachine (two StateMachine objects, even fresh copies, are different )

Definition at line 356 of file StateMachine.hh.

◆ operator=()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StateMachine& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::operator= ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine)
inline

◆ operator==()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::operator== ( const StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId > &  machine) const
inline

Equality operator

Parameters
machinethe StateMachine to compare
Returns
true if and only if the current StateMachine is the SAME StateMachine (two StateMachine objects, even fresh copies, are different)

Definition at line 343 of file StateMachine.hh.

◆ outputEventTransitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
OutputEventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputEventTransitionBegin ( State  s,
const EventPropertyId e 
) const
inline

Transition iterator on the output transitions of a given state labelled with a given event

Parameters
sa State
ean Event
Returns
a forward iterator (begin)
Precondition
the state must belong to the StateMachine
the event must belong to the StateMachine

Definition at line 1412 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newTransition(), and Diades::Automata::Experimental::BeliefState< StateMachine >::nextBeliefState().

◆ outputEventTransitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
OutputEventTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputEventTransitionEnd ( State  s,
const EventPropertyId e 
) const
inline

Transition iterator on the output transitions of a given state labelled with a given event

Parameters
sa State
ean Event
Returns
a forward iterator (end)
Precondition
the state must belong to the StateMachine
the event must belong to the StateMachine

Definition at line 1430 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newTransition(), and Diades::Automata::Experimental::BeliefState< StateMachine >::nextBeliefState().

◆ outputTransitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
OutputTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionBegin ( State  s) const
inline

◆ outputTransitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
OutputTransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::outputTransitionEnd ( State  s) const
inline

◆ removeEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::removeEvent ( const EventPropertyId e)
inline

Remove the Event e from the StateMachine. If Transition are labeled with this Event they are also deleted

Parameters
e

Definition at line 727 of file StateMachine.hh.

◆ replaceEvent()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::replaceEvent ( const EventPropertyId e1,
const EventPropertyId e2 
)
inline

Event replacement, if e2 is not inserted yet, it will be inserted and considered as normal. Use setFaulty(e2) if you want to change that

Parameters
e1Event to replace
e2Event that replace
Postcondition
e1 does not belong to the current StateMachine any longer

Definition at line 689 of file StateMachine.hh.

◆ setAllInitialStates()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setAllInitialStates ( )
inline

set all the states as possible initial states

Definition at line 1077 of file StateMachine.hh.

◆ setId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Id Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setId ( Id  identifier)
inline

set the identifier of the machine

Parameters
identifierthe new identifier
Returns
the new identifier of the StateMachine

Definition at line 410 of file StateMachine.hh.

◆ setInitial()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setInitial ( State  state)
inline

◆ setName()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const string& Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setName ( const string &  name)
inline

set the name of the StateMachine

Parameters
namethe new name of the StateMachine
Returns
the given name (might be empty string)

Definition at line 464 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::explain(), and synchroniseDdAut().

◆ setStatePropertyId()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
bool Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::setStatePropertyId ( State  state,
const StatePropertyId sProperty 
)
inline
Parameters
statea State
sPropertya StateProperty to assign to the state
Returns
true if success.
Precondition
If the StateProperty is the default one then state becomes a null State. If the StateProperty already belong to StateMachine but is associated with another state it is a failure.

Definition at line 831 of file StateMachine.hh.

◆ stateBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateBegin ( ) const
inline

◆ stateEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StateIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::stateEnd ( ) const
inline

◆ statePropertyIdBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StatePropertyIdIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::statePropertyIdBegin ( ) const
inline

State property iterator on the non-null properties

Returns
a forward iterator (begin) to a pair <Property,State>

Definition at line 1013 of file StateMachine.hh.

Referenced by runGlobalDiagnosisProblem().

◆ statePropertyIdEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
StatePropertyIdIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::statePropertyIdEnd ( ) const
inline

State iterator

Returns
a forward iterator (end)

Definition at line 1022 of file StateMachine.hh.

Referenced by runGlobalDiagnosisProblem().

◆ statePropertyIdRangeIterator()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
template<typename StateIterator >
StatePropertyIdRangeIterator<StateIterator> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::statePropertyIdRangeIterator ( StateIterator  iterator) const
inline
Parameters
iteratora StateIterator (whatever iterator which refers to a State)
Returns
an iterator on the property from the state range here is how to use this. Suppose you have a range of states begin,end from the current machine, then stateRangePropertyIterator(begin), stateRangePropertyIterator(end) is the corresponding StateProperty Range.

Definition at line 1037 of file StateMachine.hh.

◆ swapInitialState()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::swapInitialState ( State  state)
inline

swap the status of the state as initial/non-initial

If the given state is an initial state then it becomes non initial And if the state is not initial, it becomes an initial state

Parameters
statea state of the current StateMachine

Definition at line 1102 of file StateMachine.hh.

Referenced by applyTag().

◆ transitionBegin()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
TransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionBegin ( ) const
inline

◆ transitionEnd()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
TransitionIterator Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::transitionEnd ( ) const
inline

◆ typeName()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
static string Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::typeName ( )
inlinestatic

Definition at line 135 of file StateMachine.hh.

◆ unsetInitial()

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
void Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::unsetInitial ( State  state)
inline

Member Data Documentation

◆ _behav

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Graph::Graph Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_behav
protected

Definition at line 161 of file StateMachine.hh.

Referenced by Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::behaviour(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::deleteState(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::deleteTransition(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getEvent(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::getStatePropertyId(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputEventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputEventTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::inputTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::isInitial(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::newTransition(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::operator=(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputEventTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputEventTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputTransitionBegin(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::outputTransitionEnd(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::setInitial(), Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::setStatePropertyId(), and Diades::Automata::Experimental::StateMachine< _StatePropertyId, _InputSymbolId, _NullStatePropertyId, _NullInputSymbolId >::unsetInitial().

◆ _eventPropertyIdIndexOfTransition

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Graph::EdgeMap< EventPropertyIdIndex > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_eventPropertyIdIndexOfTransition
private

Definition at line 172 of file StateMachine.hh.

◆ _eventPropertyIds

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector<EventPropertyId> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_eventPropertyIds
private

◆ _id

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Id Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_id
private

◆ _indexOfEventPropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unordered_map<EventPropertyId, EventPropertyIdIndex> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_indexOfEventPropertyId
private

◆ _indexOfStatePropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unordered_map<StatePropertyId, StatePropertyIdIndex> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_indexOfStatePropertyIdIndex
private

◆ _initial

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unordered_set<State> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_initial
protected

behaviour of the machine

Definition at line 162 of file StateMachine.hh.

◆ _isInitial

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Graph::NodeMap<bool> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_isInitial
protected

possible initial states of the StateMachine

Definition at line 163 of file StateMachine.hh.

◆ _name

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
string Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_name
private

◆ _nullStatePropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const size_t Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_nullStatePropertyIdIndex = std::numeric_limits<StatePropertyIdIndex>::max()
private

◆ _nullStatePropertyIdStates

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
unordered_set<State> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_nullStatePropertyIdStates
private

Information on a state

Definition at line 178 of file StateMachine.hh.

◆ _sourceWithEventPropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector< unordered_set<State> > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_sourceWithEventPropertyIdIndex
private

◆ _stateOfStatePropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector<State> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_stateOfStatePropertyIdIndex
private

Definition at line 175 of file StateMachine.hh.

◆ _statePropertyIdIndexOfState

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
Diades::Graph::NodeMap< StatePropertyIdIndex > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_statePropertyIdIndexOfState
private

◆ _statePropertyIds

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector<StatePropertyId> Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_statePropertyIds
private

◆ _targetWithEventPropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector< unordered_set<State> > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_targetWithEventPropertyIdIndex
private

◆ _transitionsWithEventPropertyIdIndex

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector< list<Transition> > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_transitionsWithEventPropertyIdIndex
private

◆ _transitionsWithSource

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector< Diades::Graph::NodeMap< unordered_set<Transition> > > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_transitionsWithSource
private

◆ _transitionsWithTarget

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
vector< Diades::Graph::NodeMap< unordered_set<Transition> > > Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::_transitionsWithTarget
private

◆ nullEventPropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const EventPropertyId Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::nullEventPropertyId = NullEventPropertyId().nullValue()

◆ nullStatePropertyId

template<typename _StatePropertyId, typename _EventPropertyId, typename _NullStatePropertyId = NullValue<_StatePropertyId>, typename _NullEventPropertyId = NullValue<_EventPropertyId>>
const StatePropertyId Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::nullStatePropertyId = NullStatePropertyId().nullValue()

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