cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsIntervalStatistics.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5  Author(s): Marcin Balicki, Anton Deguet
6  Created on: 2010-03-31
7 
8  (C) Copyright 2010-2014 Johns Hopkins University (JHU), All Rights Reserved.
9 
10 --- begin cisst license - do not edit ---
11 
12 This software is provided "as is" under an open source license, with
13 no warranty. The complete license can be found in license.txt and
14 http://www.cisst.org/cisst/license.txt.
15 
16 --- end cisst license ---
17 */
18 
19 
25 #ifndef _mtsIntervalStatistics_h
26 #define _mtsIntervalStatistics_h
27 
35 
37 
46 
48 
49 public:
51  typedef unsigned long long int TimeTicksType;
52 
55 
57  inline double GetAvg(void) const {
58  return Avg;
59  }
61  inline double GetStdDev(void) const {
62  return StdDev;
63  }
64 
66  inline double GetMax(void) const {
67  return Max;
68  }
69 
72  inline double GetMin(void) const {
73  return Min;
74  }
75 
77  inline double MinComputeTime(void) const {
78  return mMinComputeTime;
79  }
80 
82  inline double MaxComputeTime(void) const {
83  return mMaxComputeTime;
84  }
85 
87  inline void SetStatisticsUpdatePeriod(const double & time) {
88  StatisticsUpdatePeriod = time;
89  }
90 
92  inline double GetStatisticsUpdatePeriod(void) const {
93  return StatisticsUpdatePeriod;
94  }
95 
97  void AddSample(const double sample);
98 
99  void AddComputeTime(const double computeTime);
100 
101 private:
102 
104  double Sum; //name clash with original SumOfPeriods
105  double SumOfSquares;
106  unsigned int NumberOfSamples;
107  double LastUpdateTime;
108  double TempMax;
109  double TempMin;
110 
112  const osaTimeServer * TimeServer;
113 
115  double Avg;
116  double StdDev;
117  double Max;
118  double Min;
119  double mMinComputeTime;
120  double mMaxComputeTime;
121  double StatisticsUpdatePeriod;
122 
123 public:
124 
127 
129  void ToStream(std::ostream & outputStream) const;
130 
132  void ToStreamRaw(std::ostream & outputStream, const char delimiter = ' ',
133  bool headerOnly = false, const std::string & headerPrefix = "") const;
134 
138  void SerializeRaw(std::ostream & outputStream) const;
139 
142  virtual void DeSerializeRaw(std::istream & inputStream);
143 };
144 
146 
147 #endif // _mtsIntervalStatistics_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
double GetAvg(void) const
Definition: mtsIntervalStatistics.h:57
double GetStdDev(void) const
Definition: mtsIntervalStatistics.h:61
Declaration of cmnSerializer and functions cmnSerializeRaw.
virtual void SerializeRaw(std::ostream &outputStream) const
virtual void DeSerializeRaw(std::istream &inputStream)
Declaration of osaTimeServer class.
unsigned long long int TimeTicksType
Definition: mtsIntervalStatistics.h:51
virtual void ToStream(std::ostream &outputStream) const
mtsGenericObject BaseType
Definition: mtsIntervalStatistics.h:54
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
double GetMin(void) const
Definition: mtsIntervalStatistics.h:72
Definition: mtsIntervalStatistics.h:45
void SetStatisticsUpdatePeriod(const double &time)
Definition: mtsIntervalStatistics.h:87
double GetMax(void) const
Definition: mtsIntervalStatistics.h:66
~mtsIntervalStatistics()
Definition: mtsIntervalStatistics.h:126
Defines mtsGenericObject.
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
double MaxComputeTime(void) const
Definition: mtsIntervalStatistics.h:82
Class for relative time.
Definition: osaTimeServer.h:73
double GetStatisticsUpdatePeriod(void) const
Definition: mtsIntervalStatistics.h:92
Rules of exporting.
Declaration of cmnDeSerializer and functions cmnDeSerializeRaw.
Definition for backward compatibility.
const int CMN_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:331
double MinComputeTime(void) const
Definition: mtsIntervalStatistics.h:77
virtual void ToStreamRaw(std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition: cmnClassRegisterMacros.h:202
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76