DiaDes  0.1
DIAgnosis of Discrete-Event System
Simulator.hh
Go to the documentation of this file.
1 #ifndef __DIADES__AUTOMATA__SIMULATOR__HH
2 #define __DIADES__AUTOMATA__SIMULATOR__HH
3 
4 #include<set>
5 #include<string>
6 #include<ostream>
7 #include<list>
11 
12 
13 using namespace Diades::Utils;
14 
15 namespace Diades {
16  namespace Automata {
17 
24  bool interactiveSimulation(const ObservableComponent & component,
25  list<Event> & simulation);
26 
27 
28 
29 
37  bool interactiveSimulation(ComposableModel & composable,
38  const ObservableMask & mask,
39  list<Event> & simulation);
40 
52  bool simulate(const ObservableComponent & component,
53  const set<string> & absentEvents,
54  unsigned obsMin,
55  unsigned obsMax,
56  unsigned seed,
57  list<Event> & simulation);
58 
71  bool simulate(ComposableModel & composable,
72  const ObservableMask & mask,
73  const set<string> & absentEvents,
74  unsigned obsMin,
75  unsigned obsMax,
76  unsigned seed,
77  list<Event> & simulation);
78 
89  template<typename InputIterator, typename OutputIterator>
90  void timeStamp(InputIterator first, InputIterator last, time_duration min, time_duration max, OutputIterator result) {
91  time_duration global(seconds(0));
92  while (first != last) {
93  time_duration new_duration(seconds(generateRandomValue(min.total_seconds(), max.total_seconds())));
94  global += new_duration;
95  *result = make_pair(global, *first);
96  ++first;
97  ++result;
98  }
99  }
100  };
101 };
102 #endif
Random generation utilities.
Namespace of the Diades project.
bool interactiveSimulation(const ObservableComponent &component, State &current, list< Event > &simulation)
Definition: Simulator.cc:568
bool simulate(const ObservableComponent &component, const set< string > &absentEvents, unsigned obsMin, unsigned obsMax, unsigned seed, list< Event > &simulation)
Definition: Simulator.cc:192
void timeStamp(InputIterator first, InputIterator last, time_duration min, time_duration max, OutputIterator result)
Definition: Simulator.hh:90
long generateRandomValue(long lower, long upper)