TvlSim Logo  1.00.0
C++ Simulated Travel-Oriented Distribution System Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SimulationStatus.hpp
Go to the documentation of this file.
1 #ifndef __TVLSIM_BOM_SIMULATIONSTATUS_HPP
2 #define __TVLSIM_BOM_SIMULATIONSTATUS_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // Boost Simulation
10 #include <boost/progress.hpp>
11 // StdAir
12 #include <stdair/stdair_date_time_types.hpp>
13 #include <stdair/basic/StructAbstract.hpp>
14 // SEvMgr
15 #include <sevmgr/SEVMGR_Types.hpp>
16 // TvlSim
19 #include <tvlsim/TVLSIM_Types.hpp>
20 
21 namespace TVLSIM {
22 
31  struct SimulationStatus : public stdair::StructAbstract {
32 
33  public:
34  // ////////// Type definitions ////////////
39 
40  public:
41  // //////////////// Getters /////////////////
45  bool isTheSimulationDone() const;
46 
50  const stdair::Date_T& getStartDate() const {
51  return _startDate;
52  }
53 
57  const stdair::Date_T& getCurrentDate() const {
58  return _currentDate;
59  }
60 
64  const stdair::Date_T& getEndDate() const {
65  return _endDate;
66  }
67 
71  const NbOfRuns_T& getCurrentRun() const {
72  return _currentRun;
73  }
74 
79  return _totalNumberOfRuns;
80  }
81 
86  return _simulationMode;
87  }
88 
93  return _simulationMode.getMode();
94  }
95 
99  const stdair::NbOfBookings_T& getCurrentNumberOfBookings() const {
100  return _currentNbOfBookings;
101  }
102 
106  const double& getCurrentElapsedTime() const {
107  return _currentElapsedTime;
108  }
109 
113  const double& getCurrentEstimatedRemainingTime() const {
114  return _currentEstimatedRemainingTime;
115  }
116 
120  const stdair::ProgressStatus& getCurrentProgressStatus() const {
121  return _currentProgressStatus;
122  }
123 
127  const SEVMGR::ProgressStatusMap_T& getProgressStatusMap() const {
128  return _progressStatusMap;
129  }
130 
131  public:
132  // //////////////// Setters /////////////////
136  void setSimulationPeriod (const stdair::Date_T& iStartDate,
137  const stdair::Date_T& iEndDate) {
138  _startDate = iStartDate;
139  _endDate = iEndDate;
140  setCurrentDate (iStartDate);
141  }
142 
146  void setCurrentDate (const stdair::Date_T& iCurrentDate) {
147  _currentDate = iCurrentDate;
148  }
149 
153  void updateProgress(const stdair::EventType::EN_EventType&,
154  const stdair::ProgressStatus&,
155  const double& iEventMeasure = 0);
156 
160  void reset ();
161 
165  void prepareNewRun ();
166 
170  void setMode (const SimulationMode::EN_SimulationMode& iEN_SimulationMode) {
171  return _simulationMode.setMode(iEN_SimulationMode);
172  }
173 
177  void increaseGlobalNumberOfBookings (const stdair::PartySize_T&);
178 
182  void setCurrentProgressStatus (const stdair::ProgressStatus&);
183 
187  void setTotalNumberOfRuns (const NbOfRuns_T& iNbOfRuns) {
188  _totalNumberOfRuns = iNbOfRuns;
189  }
190 
191  public:
192  // /////////// Display support method /////////////
198  void toStream (std::ostream& ioOut) const {
199  ioOut << describe();
200  }
201 
207  void fromStream (std::istream& ioIn) {
208  }
209 
213  const std::string describe() const;
214 
218  const std::string describeKey() const {
219  return _key.toString();
220  }
221 
226  void displayStartStatusMessage () const;
227 
231  void displayEndStatusMessage () const;
232 
233  private:
234  void describeHelper(std::string&) const;
235 
236  public:
241  SimulationStatus (const Key_T&);
242 
246  SimulationStatus ();
247 
252 
253  private:
258 
259  private:
260  // //////////////// Attributes /////////////////
264  Key_T _key;
265 
269  stdair::Date_T _startDate;
270 
274  stdair::Date_T _currentDate;
275 
279  stdair::Date_T _endDate;
280 
284  NbOfRuns_T _totalNumberOfRuns;
285 
289  NbOfRuns_T _currentRun;
290 
294  stdair::NbOfBookings_T _currentNbOfBookings;
295 
299  stdair::NbOfBookings_T _totalNbOfBookings;
300 
304  stdair::ProgressStatus _overallProgressStatus;
305 
309  stdair::ProgressStatus _currentProgressStatus;
310 
316  SEVMGR::ProgressStatusMap_T _progressStatusMap;
317 
322  double _totalElapsedTime;
323  double _estimatedRemainingTime;
324 
329  double _currentElapsedTime;
330  double _currentEstimatedRemainingTime;
331 
337  ChronometerMap_T _chronometerMap;
338 
342  SimulationMode _simulationMode;
343  };
344 
345 }
346 #endif // __TVLSIM_BOM_SIMULATIONSTATUS_HPP