TvlSim Logo  1.01.6
C++ Simulated Travel-Oriented Distribution System Library
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 // StdAir
10 #include <stdair/stdair_date_time_types.hpp>
11 #include <stdair/basic/StructAbstract.hpp>
12 // SEvMgr
13 #include <sevmgr/SEVMGR_Types.hpp>
14 // TvlSim
17 #include <tvlsim/TVLSIM_Types.hpp>
18 
19 namespace TVLSIM {
20 
29  struct SimulationStatus : public stdair::StructAbstract {
30 
31  public:
32  // ////////// Type definitions ////////////
37 
38  public:
39  // //////////////// Getters /////////////////
43  bool isTheSimulationDone() const;
44 
48  const stdair::Date_T& getStartDate() const {
49  return _startDate;
50  }
51 
55  const stdair::Date_T& getCurrentDate() const {
56  return _currentDate;
57  }
58 
62  const stdair::Date_T& getEndDate() const {
63  return _endDate;
64  }
65 
69  const NbOfRuns_T& getCurrentRun() const {
70  return _currentRun;
71  }
72 
77  return _totalNumberOfRuns;
78  }
79 
84  return _simulationMode;
85  }
86 
91  return _simulationMode.getMode();
92  }
93 
97  const stdair::NbOfBookings_T& getCurrentNumberOfBookings() const {
98  return _currentNbOfBookings;
99  }
100 
104  const double& getCurrentElapsedTime() const {
105  return _currentElapsedTime;
106  }
107 
111  const double& getCurrentEstimatedRemainingTime() const {
112  return _currentEstimatedRemainingTime;
113  }
114 
118  const stdair::ProgressStatus& getCurrentProgressStatus() const {
119  return _currentProgressStatus;
120  }
121 
125  const SEVMGR::ProgressStatusMap_T& getProgressStatusMap() const {
126  return _progressStatusMap;
127  }
128 
129  public:
130  // //////////////// Setters /////////////////
134  void setSimulationPeriod (const stdair::Date_T& iStartDate,
135  const stdair::Date_T& iEndDate) {
136  _startDate = iStartDate;
137  _endDate = iEndDate;
138  setCurrentDate (iStartDate);
139  }
140 
144  void setCurrentDate (const stdair::Date_T& iCurrentDate) {
145  _currentDate = iCurrentDate;
146  }
147 
151  void updateProgress(const stdair::EventType::EN_EventType&,
152  const stdair::ProgressStatus&,
153  const double& iEventMeasure = 0);
154 
158  void reset ();
159 
163  void prepareNewRun ();
164 
168  void setMode (const SimulationMode::EN_SimulationMode& iEN_SimulationMode) {
169  return _simulationMode.setMode(iEN_SimulationMode);
170  }
171 
175  void increaseGlobalNumberOfBookings (const stdair::PartySize_T&);
176 
180  void setCurrentProgressStatus (const stdair::ProgressStatus&);
181 
185  void setTotalNumberOfRuns (const NbOfRuns_T& iNbOfRuns) {
186  _totalNumberOfRuns = iNbOfRuns;
187  }
188 
189  public:
190  // /////////// Display support method /////////////
196  void toStream (std::ostream& ioOut) const {
197  ioOut << describe();
198  }
199 
205  void fromStream (std::istream& ioIn) {
206  }
207 
211  const std::string describe() const;
212 
216  const std::string describeKey() const {
217  return _key.toString();
218  }
219 
224  void displayStartStatusMessage () const;
225 
229  void displayEndStatusMessage () const;
230 
231  private:
232  void describeHelper(std::string&) const;
233 
234  public:
239  SimulationStatus (const Key_T&);
240 
244  SimulationStatus ();
245 
250 
251  private:
256 
257  private:
258  // //////////////// Attributes /////////////////
262  Key_T _key;
263 
267  stdair::Date_T _startDate;
268 
272  stdair::Date_T _currentDate;
273 
277  stdair::Date_T _endDate;
278 
282  NbOfRuns_T _totalNumberOfRuns;
283 
287  NbOfRuns_T _currentRun;
288 
292  stdair::NbOfBookings_T _currentNbOfBookings;
293 
297  stdair::NbOfBookings_T _totalNbOfBookings;
298 
302  stdair::ProgressStatus _overallProgressStatus;
303 
307  stdair::ProgressStatus _currentProgressStatus;
308 
314  SEVMGR::ProgressStatusMap_T _progressStatusMap;
315 
320  double _totalElapsedTime;
321  double _estimatedRemainingTime;
322 
327  double _currentElapsedTime;
328  double _currentEstimatedRemainingTime;
329 
335  ChronometerMap_T _chronometerMap;
336 
340  SimulationMode _simulationMode;
341  };
342 
343 }
344 #endif // __TVLSIM_BOM_SIMULATIONSTATUS_HPP
unsigned int NbOfRuns_T
std::map< stdair::EventType::EN_EventType, double > ChronometerMap_T
Enumeration of json commands.
static EN_SimulationMode getMode(const char)
void setMode(const EN_SimulationMode &iEN_SimulationMode)
const std::string toString() const
void setSimulationPeriod(const stdair::Date_T &iStartDate, const stdair::Date_T &iEndDate)
void setCurrentDate(const stdair::Date_T &iCurrentDate)
void fromStream(std::istream &ioIn)
const stdair::ProgressStatus & getCurrentProgressStatus() const
SimulationMode::EN_SimulationMode getMode() const
SimulationStatusKey Key_T
const stdair::Date_T & getEndDate() const
void setMode(const SimulationMode::EN_SimulationMode &iEN_SimulationMode)
void toStream(std::ostream &ioOut) const
const std::string describe() const
const stdair::Date_T & getStartDate() const
const SimulationMode & getSimulationMode() const
void setCurrentProgressStatus(const stdair::ProgressStatus &)
const std::string describeKey() const
const stdair::Date_T & getCurrentDate() const
const NbOfRuns_T & getCurrentRun() const
void updateProgress(const stdair::EventType::EN_EventType &, const stdair::ProgressStatus &, const double &iEventMeasure=0)
const SEVMGR::ProgressStatusMap_T & getProgressStatusMap() const
void increaseGlobalNumberOfBookings(const stdair::PartySize_T &)
const double & getCurrentEstimatedRemainingTime() const
const stdair::NbOfBookings_T & getCurrentNumberOfBookings() const
void setTotalNumberOfRuns(const NbOfRuns_T &iNbOfRuns)
const NbOfRuns_T & getTotalNumberOfRuns() const
const double & getCurrentElapsedTime() const
void displayStartStatusMessage() const