DiaDes  0.1
DIAgnosis of Discrete-Event System
TwinRealTimeSystemPattern.hh
Go to the documentation of this file.
1 
9 #ifndef __DIADES__PETRI__TWINREALTIMESYSTEMPATTERN__HH__
10 #define __DIADES__PETRI__TWINREALTIMESYSTEMPATTERN__HH__
14 
15 namespace Diades
16 {
17  namespace Petri
18  {
19 
26  {
27  private:
28 
29  vector<Marking> _leftFinalMarkings;
31  vector<Marking> _rightFinalMarkings;
33  std::string _seltFormula;
34 
35  public:
36 
43 
44 
49  const vector<Marking> &
51  {
52  return _leftFinalMarkings;
53  }
54 
59  const vector<Place> &
61  {
63  }
64 
69  const vector<Marking> &
71  {
72  return _rightFinalMarkings;
73  }
74 
75 
80  const vector<Place> &
82  {
84  }
85 
86 
91  const std::string & seltFormula() const
92  {
93  return _seltFormula;
94  }
95 
96 
97  private:
105  void duplicatePlaces(const RealTimeSystemPattern & syspat,
106  unordered_map<Place, Place> & leftPlaceOf,
107  unordered_map<Place, Place> & rightPlaceOf);
108 
109 
122  void
124  const unordered_map<Place, Place> & leftPlaceOf,
125  const unordered_map<Place, Place> & rightPlaceOf,
126  unordered_map<Transition, Transition> & leftTransitionOf,
127  unordered_map<Transition, Transition> & rightTransitionOf,
128  unordered_map<Event, unordered_set<Transition>> &leftObservableTransitions,
129  unordered_map<Event, unordered_set<Transition>> &rightObservableTransitions);
130 
131 
141  void mergeTransitions(unordered_map<Event, unordered_set<Transition>> &leftObservableTransitions,
142  unordered_map<Event, unordered_set<Transition>> &rightObservableTransitions);
143 
144 
152 
153 
157  void computeSeltFormula();
158 
159  };
160 
161  }
162 }
163 
164 
165 
166 #endif /* __DIADES__PETRI__TWINREALTIMESYSTEMPATTERN__HH__ */
167 
Transition mergeTransition(Transition trLeft, Transition trRight)
Diades::Graph::Node Transition
Definition: BoundedNet.hh:31
void mergeTransitions(unordered_map< Event, unordered_set< Transition >> &leftObservableTransitions, unordered_map< Event, unordered_set< Transition >> &rightObservableTransitions)
TwinRealTimeSystemPattern(const RealTimeSystemPattern &syspat)
PetriEventManager::EventId Event
Definition: LabelledNet.hh:39
const vector< Place > & leftNonAdmissibleSystemPlaces() const
const vector< Marking > & leftFinalMarkings() const
const vector< Marking > & rightFinalMarkings() const
const vector< Place > & rightNonAdmissibleSystemPlaces() const
Namespace of the Diades project.
void duplicateTransitions(const RealTimeSystemPattern &syspat, const unordered_map< Place, Place > &leftPlaceOf, const unordered_map< Place, Place > &rightPlaceOf, unordered_map< Transition, Transition > &leftTransitionOf, unordered_map< Transition, Transition > &rightTransitionOf, unordered_map< Event, unordered_set< Transition >> &leftObservableTransitions, unordered_map< Event, unordered_set< Transition >> &rightObservableTransitions)
void duplicatePlaces(const RealTimeSystemPattern &syspat, unordered_map< Place, Place > &leftPlaceOf, unordered_map< Place, Place > &rightPlaceOf)