Ipopt  3.11.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpTimedTask.hpp
Go to the documentation of this file.
1 // Copyright (C) 2006, 2009 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpTimedTask.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2005-09-19
8 
9 #ifndef __IPTIMEDTASK_HPP__
10 #define __IPTIMEDTASK_HPP__
11 
12 #include "IpUtils.hpp"
13 
14 namespace Ipopt
15 {
18  class TimedTask
19  {
20  public:
25  :
26  total_cputime_(0.),
27  total_systime_(0.),
28  total_walltime_(0.),
29  start_called_(false),
30  end_called_(true)
31  {}
32 
35  {}
37 
39  void Reset()
40  {
41  total_cputime_ = 0.;
42  total_systime_ = 0.;
43  total_walltime_ = 0.;
44  start_called_ = false;
45  end_called_ = true;
46  }
47 
49  void Start()
50  {
53  end_called_ = false;
54  start_called_ = true;
58  }
59 
61  void End()
62  {
65  end_called_ = true;
66  start_called_ = false;
70  }
71 
76  void EndIfStarted()
77  {
78  if (start_called_) {
79  end_called_ = true;
80  start_called_ = false;
84  }
86  }
87 
90  {
92  return total_cputime_;
93  }
94 
97  {
99  return total_systime_;
100  }
101 
104  {
106  return total_walltime_;
107  }
108 
109  private:
118  TimedTask(const TimedTask&);
119 
121  void operator=(const TimedTask&);
123 
136 
142 
143  };
144 } // namespace Ipopt
145 
146 #endif