StdAir Logo  0.45.1
C++ Standard Airline IT Object Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ProgressStatus.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BAS_PROGRESSSTATUS_HPP
2 #define __STDAIR_BAS_PROGRESSSTATUS_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 // Boost Progress
10 #include <boost/progress.hpp>
11 // StdAir
14 
15 namespace stdair {
16 
25  struct ProgressStatus : public StructAbstract {
26  public:
27  // //////////////// Getters /////////////////
29  const Count_T& count() const {
30  return _currentNb;
31  }
32 
34  const Count_T& getCurrentNb() const {
35  return _currentNb;
36  }
37 
39  const Count_T& getExpectedNb() const {
40  return _expectedNb;
41  }
42 
44  const Count_T& getActualNb() const {
45  return _actualNb;
46  }
47 
50  if (_actualNb == 0) {
51  return 100.0;
52  }
53  return (static_cast<Percentage_T> (_currentNb)
54  / static_cast<Percentage_T> (_actualNb));
55  }
56 
57 
58  // //////////////// Setters /////////////////
60  void setCurrentNb (const Count_T& iCurrentNb) {
61  _currentNb = iCurrentNb;
62  }
63 
65  void setExpectedNb (const Count_T& iExpectedNb) {
66  _expectedNb = iExpectedNb;
67  }
68 
70  void setActualNb (const Count_T& iActualNb) {
71  _actualNb = iActualNb;
72  }
73 
75  void reset();
76 
78  Count_T operator+= (Count_T iIncrement) {
79  _currentNb += iIncrement;
80  return _currentNb;
81  }
82 
85  ++_currentNb;
86  return _currentNb;
87  }
88 
89 
90  public:
91  // //////////////// Display Support Methods /////////////////
93  const std::string describe() const;
94 
95 
96  public:
104  ProgressStatus (const Count_T& iCurrentNb, const Count_T& iExpectedNb,
105  const Count_T& iActualNb);
106 
115  ProgressStatus (const Count_T& iExpectedNb, const Count_T& iActualNb);
116 
125  ProgressStatus (const Count_T& iActualNb);
126 
132  ProgressStatus();
133 
138 
139  private:
140  // //////////////// Attributes /////////////////
142  Count_T _currentNb;
143 
145  Count_T _expectedNb;
146 
148  Count_T _actualNb;
149  };
150 
151 }
152 #endif // __STDAIR_BAS_PROGRESSSTATUS_HPP