DiaDes
0.1
DIAgnosis of Discrete-Event System
|
#include <SynchronisationEvent.hh>
Classes | |
class | ComponentIterator |
Public Types | |
using | Exception = Diades::Utils::Exception< SynchronisationEvent > |
using | Component = StateMachine |
using | ComponentVector = std::vector< const Component * > |
using | Size = typename ComponentVector::size_type |
using | Event = typename Component::EventPropertyId |
using | EventVector = std::vector< Event > |
Static Public Member Functions | |
static std::string | typeName () |
Private Types | |
using | NullEvent = typename StateMachine::NullEventPropertyId |
Private Attributes | |
ComponentVector | _components |
ComponentVector | _support |
EventVector | _events |
EventVector | _supportEvents |
Event | _synchronisedEvent |
A SynchronisationEvent implements a n-uple of events (e_1,....,e_n) that are synchronised according to a law defined in SynchronisationRules. For efficiency purpose, a SynchronisationEvent is associated to a simple Event that represents the t-uple.
A SynchronisationEvent is involded in the synchronisation of a set of StateMachine (template). A StateMachine involved in such a Synchronisation is internally called a Component.
In the case that the law is not synchronous but asynchronous, the t-uple may contain invalid events that represents the fact that the asssociated Component do not trigger any transition when such a SynchronisationEvent occurs. In this case it means that (e_1,....,e_n) contains only a j-uple of valid events namely (e_i1,...,e_ij) associated to a j-uple of components (c_i1,...,c_ij). This j-uple of component is called the support of the SynchronisationEvent. In other words, once the SynchronisationEvent occurs, only the components of the support trigger a transition. A SynchronisationEvent is said to be valid if it has a non-empty support.
Definition at line 46 of file SynchronisationEvent.hh.
Event is the EventPropertyId from the given StateMachine Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::Component |
Definition at line 61 of file SynchronisationEvent.hh.
using Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::ComponentVector = std::vector<const Component *> |
Definition at line 67 of file SynchronisationEvent.hh.
EventVector a vector of Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::Event |
Definition at line 77 of file SynchronisationEvent.hh.
using Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::EventVector = std::vector<Event> |
Definition at line 82 of file SynchronisationEvent.hh.
using Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::Exception = Diades::Utils::Exception<SynchronisationEvent> |
Definition at line 55 of file SynchronisationEvent.hh.
|
private |
Definition at line 85 of file SynchronisationEvent.hh.
using Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::Size = typename ComponentVector::size_type |
Definition at line 72 of file SynchronisationEvent.hh.
|
default |
Default constructor
If _components[i] has an event involved in the SynchronisationEvent then it is _events[i] otherwise _events[i] is invalid
_supportEvents[i] is the valid event involved in the SynchronisationEvent that is from the component _support[i]
It is set by the user of this SynchronisationEvent
|
default |
Copy constructor (default)
other |
|
default |
Move constructor (default)
other |
|
default |
Destructor
|
inline |
Parametrized constructor
components | the components associated in this synchronisation The created event is invalid |
Definition at line 275 of file SynchronisationEvent.hh.
|
inline |
Merging constructor
sync1 | a SynchronisationEvent (e_1,...,e_m) |
sync2 | a SynchronisationEvent (e'1,...,e'_n) Create a new SynchronisationEvent (e''_1,...,e''{n+m}) resulting from the appending of sync1 and sync2. |
Definition at line 321 of file SynchronisationEvent.hh.
References Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::beginOfComponents(), Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::endOfComponents(), ensure, Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::getAssociatedEvent(), Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::isValid(), and require.
|
inline |
Projection constructor
sync | a SynchronisationEvent |
components | a set of components Create a new SynchronisationEvent by projection of the sync event to the set of components |
Definition at line 418 of file SynchronisationEvent.hh.
|
inline |
component | a component |
e | an Event |
Definition at line 562 of file SynchronisationEvent.hh.
References Diades::Automata::Experimental::StateMachine< _StatePropertyId, _EventPropertyId, _NullStatePropertyId, _NullEventPropertyId >::containsEvent(), ensure, Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::ComponentIterator::index(), and require.
|
inline |
Definition at line 609 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::SynchronisationEvent().
|
inline |
Definition at line 627 of file SynchronisationEvent.hh.
|
inline |
Definition at line 618 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::SynchronisationEvent().
|
inline |
Definition at line 636 of file SynchronisationEvent.hh.
|
inline |
Definition at line 672 of file SynchronisationEvent.hh.
References Diades::Utils::Ptr< T >::get().
|
inline |
Definition at line 693 of file SynchronisationEvent.hh.
References Diades::Utils::Ptr< T >::get().
|
inline |
Definition at line 645 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::SynchronisationEvent().
|
inline |
Definition at line 655 of file SynchronisationEvent.hh.
References require.
|
inline |
Definition at line 505 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::SynchronisationEvent().
|
inline |
difference operator
evt | the evt to compare with |
Definition at line 477 of file SynchronisationEvent.hh.
|
default |
|
default |
Move assignement (default)
other |
|
inline |
equality operator
evt | the evt to compare with |
Definition at line 461 of file SynchronisationEvent.hh.
References Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::_components, Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::_events, Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::_support, and Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::_supportEvents.
|
inline |
Set the encoded event for this SynchronisationEvent
evt | the new encoded event |
Definition at line 725 of file SynchronisationEvent.hh.
|
inline |
Definition at line 486 of file SynchronisationEvent.hh.
|
inline |
Definition at line 495 of file SynchronisationEvent.hh.
|
inline |
Note
that this event is set by the user with setSynchronisedEvent Definition at line 715 of file SynchronisationEvent.hh.
|
inlinestatic |
Definition at line 51 of file SynchronisationEvent.hh.
|
private |
Definition at line 205 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::operator==().
|
private |
Definition at line 218 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::operator==().
|
private |
Definition at line 210 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::operator==().
|
private |
Definition at line 226 of file SynchronisationEvent.hh.
Referenced by Diades::Automata::Experimental::SynchronisationEvent< StateMachine >::operator==().
|
private |
Definition at line 233 of file SynchronisationEvent.hh.