DiaDes  0.1
DIAgnosis of Discrete-Event System
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator > Class Template Reference

#include <StateInserter.hh>

Public Types

using StateIdGenerator = _StateIdGenerator
 
using StateCreator = _StateCreator
 
using Fsm = typename StateCreator::Fsm
 
using State = typename Fsm::State
 
using StateId = typename Fsm::StatePropertyId
 
using StateIdMap = std::unordered_map< StateId, StateId >
 

Public Member Functions

 StateInserter ()=default
 
 StateInserter (StateInserter const &other)=default
 
StateInserteroperator= (StateInserter const &other)=default
 
 StateInserter (StateInserter &&other)=default
 
StateInserteroperator= (StateInserter &&other)=default
 
 ~StateInserter ()=default
 
 StateInserter (StateIdGenerator &gen, StateCreator &creator)
 
const Fsmsource () const
 
Fsmtarget ()
 
virtual State insertState (State state)
 
virtual StateId getStateId (StateId stateId)
 

Protected Member Functions

State newState (State state, StateId id)
 

Private Attributes

StateIdMap _stateOf
 
Diades::Utils::Ptr< StateIdGenerator >::P _generator
 
Diades::Utils::Ptr< StateCreator >::P _creator
 

Detailed Description

template<typename _StateIdGenerator, typename _StateCreator>
class Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >

This template class is a class helper for the Fsm state insertion. It gathers a StateIdGenerator in charge of generating new StateId on demand before the insertion of any state in the target Fsm and a StateCreation object that will effectively create new States in a target Fsm based on a source Fsm. StateInserter manages the relationship between the stateIds of the source Fsm and the stateIds of the target Fsm. It ensures that a state created in the target Fsm hold a StateId that is associated with a unique StateId so a unique State of the source Fsm.

See also
StateIdGenerator
StateCreation

Definition at line 133 of file StateInserter.hh.

Member Typedef Documentation

◆ Fsm

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::Fsm = typename StateCreator::Fsm

Definition at line 139 of file StateInserter.hh.

◆ State

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::State = typename Fsm::State

Definition at line 140 of file StateInserter.hh.

◆ StateCreator

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateCreator = _StateCreator

Definition at line 138 of file StateInserter.hh.

◆ StateId

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateId = typename Fsm::StatePropertyId

Definition at line 141 of file StateInserter.hh.

◆ StateIdGenerator

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateIdGenerator = _StateIdGenerator

Definition at line 137 of file StateInserter.hh.

◆ StateIdMap

template<typename _StateIdGenerator , typename _StateCreator >
using Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateIdMap = std::unordered_map<StateId, StateId>

Definition at line 142 of file StateInserter.hh.

Constructor & Destructor Documentation

◆ StateInserter() [1/4]

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateInserter ( )
default

Default constructor

◆ StateInserter() [2/4]

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateInserter ( StateInserter< _StateIdGenerator, _StateCreator > const &  other)
default

Copy constructor (default)

Parameters
other

◆ StateInserter() [3/4]

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateInserter ( StateInserter< _StateIdGenerator, _StateCreator > &&  other)
default

Move constructor (default)

Parameters
other

◆ ~StateInserter()

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::~StateInserter ( )
default

Destructor

◆ StateInserter() [4/4]

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::StateInserter ( StateIdGenerator gen,
StateCreator creator 
)
inline
Parameters
gena StateIdGenerator that will fix the way the stateId of the target Fsm will be generated
creatora StateCreator that will fix the way an state will be indeed created in the target Fsm

Definition at line 198 of file StateInserter.hh.

Member Function Documentation

◆ getStateId()

template<typename _StateIdGenerator , typename _StateCreator >
virtual StateId Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::getStateId ( StateId  stateId)
inlinevirtual
Parameters
stateIda given StateId
Returns
the StateId that will be used and associated with the state that will be inserted with 'getState'. If the stateId is already associated simply return the corresponding StateId. If not it is first created by the StateIdGenerator and associated with the given stateId.

Definition at line 253 of file StateInserter.hh.

◆ insertState()

template<typename _StateIdGenerator , typename _StateCreator >
virtual State Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::insertState ( State  state)
inlinevirtual
Parameters
statea State of the source Fsm associated with the StateCreator
Returns
a state newly created in the target Fsm associated with the StateCreator First it gets the stateId 'sourceId' from the source Fsm, look for the StateId 'targetId' that is associated within the target Fsm and returns the state associated with 'targetId' in the target Fsm

Reimplemented in Diades::Automata::Experimental::ManagedStateInserter< _StateIdGenerator, _StateCreator, StateProperty >.

Definition at line 237 of file StateInserter.hh.

References getStateId().

◆ newState()

template<typename _StateIdGenerator , typename _StateCreator >
State Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::newState ( State  state,
StateId  id 
)
inlineprotected

Definition at line 152 of file StateInserter.hh.

◆ operator=() [1/2]

template<typename _StateIdGenerator , typename _StateCreator >
StateInserter& Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::operator= ( StateInserter< _StateIdGenerator, _StateCreator > const &  other)
default

Assignement (default)

Parameters
other
Returns
the current StateInserter

◆ operator=() [2/2]

template<typename _StateIdGenerator , typename _StateCreator >
StateInserter& Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::operator= ( StateInserter< _StateIdGenerator, _StateCreator > &&  other)
default

Move assignement (default)

Parameters
other
Returns
the current Transition

◆ source()

template<typename _StateIdGenerator , typename _StateCreator >
const Fsm& Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::source ( ) const
inline
Returns
the source Fsm of this StateInserter (i.e. the source Fsm of the underlying StateCreator)

Definition at line 211 of file StateInserter.hh.

◆ target()

template<typename _StateIdGenerator , typename _StateCreator >
Fsm& Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::target ( )
inline
Returns
the target Fsm of this StateInserter (i.e. the target Fsm of the underlying StateCreator)

Definition at line 222 of file StateInserter.hh.

Member Data Documentation

◆ _creator

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Utils::Ptr<StateCreator>::P Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::_creator
private

Definition at line 147 of file StateInserter.hh.

◆ _generator

template<typename _StateIdGenerator , typename _StateCreator >
Diades::Utils::Ptr<StateIdGenerator>::P Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::_generator
private

Definition at line 146 of file StateInserter.hh.

◆ _stateOf

template<typename _StateIdGenerator , typename _StateCreator >
StateIdMap Diades::Automata::Experimental::StateInserter< _StateIdGenerator, _StateCreator >::_stateOf
private

Definition at line 145 of file StateInserter.hh.


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