DiaDes
0.1
DIAgnosis of Discrete-Event System
|
#include <SynchronisationRules.hh>
Private Attributes | |
bool | _locked |
set< set< Event > > | _isSynchronized |
Additional Inherited Members | |
Public Types inherited from Diades::Automata::SynchronisationRules | |
typedef Diades::Utils::Exception< SynchronisationRules > | Exception |
typedef vector< const Component * > | ComponentVector |
typedef ComponentVector::size_type | size_type |
typedef list< SynchronisationEvent >::const_iterator | SynchronisationIterator |
typedef _ComponentIterator | ComponentIterator |
Static Public Member Functions inherited from Diades::Automata::SynchronisationRules | |
static string | typeName () |
Protected Attributes inherited from Diades::Automata::SynchronisationRules | |
ComponentVector | _components |
list< SynchronisationEvent > | _synchros |
This class allows to setup a customised set of synchronisation rules by successively adding set of events to synchronise. Once the set of events to synchronise is declared, it is required to close the rules. Closing the rules consists in adding the SynchronisationEvent objects that will correspond to the events that are not synchronised (but that are asynchronous and thus must be triggered). In case new events should be synchronised, it is possible to open again but a closure is necessary before sending this SynchronisationRules to a ComposableModel.
Definition at line 528 of file SynchronisationRules.hh.
Diades::Automata::ParametrizedSynchronisation::ParametrizedSynchronisation | ( | const ComponentVector & | components | ) |
components | the set of components If no synchronise operation is performed and just a close operation, then generate the free product of components |
|
inline |
Default constructor
Definition at line 543 of file SynchronisationRules.hh.
void Diades::Automata::ParametrizedSynchronisation::clear | ( | ) |
clear the rules
void Diades::Automata::ParametrizedSynchronisation::close | ( | ) |
closure. Complement the SynchronisationRules but adding SynchronisationEvents representing the fact that the synchronisation is asynchronous. That is if e1 is not synchronised with anything (by the use of the synchronise operator) then close() will add the SynchronisationEvent (empty,empty,e1,....empty) to th set of rules
void Diades::Automata::ParametrizedSynchronisation::init | ( | const ComponentVector & | components | ) |
components | the set of components If no synchronise operation is performed and just a close operation, then generate the free product of components |
|
inline |
Definition at line 597 of file SynchronisationRules.hh.
void Diades::Automata::ParametrizedSynchronisation::open | ( | ) |
void Diades::Automata::ParametrizedSynchronisation::synchronise | ( | Event | e | ) |
e | Event Add the synchronisation of the transition labelled with event e in the set of synchronised rules |
void Diades::Automata::ParametrizedSynchronisation::synchronise | ( | const vector< Event > & | e | ) |
e | set of Event Add the synchronisation of the transitions labelled with the set of event e in the set of synchronised rules for instance if e = (e1,e2) then a transition labelled with e1 will be synchronised with a transition labelled with e2. vector e must be compatible with the component vector if e = [e1,e2] and e1 belongs to component c1 and e2 belongs to component c2 then c1 must be before c2 in the associated current component vector. |
void Diades::Automata::ParametrizedSynchronisation::synchronise | ( | const vector< Event > & | e, |
bool | relaxation | ||
) |
e | set of Event |
relaxation | Relaxation mode Add the synchronisation of the transitions labelled with the set of event e in the set of synchronised rules for instance if e = (e1,e2) then a transition labelled with e1 will be synchronised with a transition labelled with e2. If relaxation mode is set to true, the synchronisation will be relaxed in the sense that transitions (e1,empty) and (empty,e2) will also be triggered (see KanJohn et al, Synthesis of a Distributed and Accurate Diagnoser, DX2010) vector e must be compatible with the component vector if e = [e1,e2] and e1 belongs to component c1 and e2 belongs to component c2 then c1 must be before c2 in the associated current component vector. |
|
private |
Definition at line 531 of file SynchronisationRules.hh.
|
private |
Definition at line 530 of file SynchronisationRules.hh.