00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ELC_TIME_TIME_DATA_HPP_ 00013 #define ELC_TIME_TIME_DATA_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include <vector> 00020 #include <ecl/config/macros.hpp> 00021 #include <ecl/time/duration.hpp> 00022 #include "macros.hpp" 00023 00024 /***************************************************************************** 00025 ** Namespaces 00026 *****************************************************************************/ 00027 00028 namespace ecl { 00029 00030 /***************************************************************************** 00031 ** Interface [TimeData] 00032 *****************************************************************************/ 00039 class ecl_time_PUBLIC TimeData { 00040 public: 00041 /********************* 00042 ** Collection 00043 **********************/ 00049 void push_back(const ecl::Duration& duration ) { durations.push_back(duration); } 00053 void clear() { durations.clear(); } 00054 00055 /********************* 00056 ** Statistics 00057 **********************/ 00062 ecl::Duration average() const; 00067 ecl::Duration stdDev() const; 00072 ecl::Duration variance() const; 00073 00074 private: 00075 std::vector<ecl::Duration> durations; 00076 }; 00077 00078 } // namespace ecl 00079 00080 #endif /* ELC_TIME_TIME_DATA_HPP_ */