Program Listing for File time_data.hpp

Return to documentation for file (/tmp/ws/src/ecl_core/ecl_time/include/ecl/time/time_data.hpp)

/*****************************************************************************
** Ifdefs
*****************************************************************************/

#ifndef ELC_TIME_TIME_DATA_HPP_
#define ELC_TIME_TIME_DATA_HPP_

/*****************************************************************************
** Includes
*****************************************************************************/

#include <vector>
#include <ecl/config/macros.hpp>
#include "duration.hpp"
#include "macros.hpp"

/*****************************************************************************
** Namespaces
*****************************************************************************/

namespace ecl {

/*****************************************************************************
** Interface [TimeData]
*****************************************************************************/
class ecl_time_PUBLIC TimeData {
public:
    /*********************
    ** Collection
    **********************/
    void push_back(const ecl::Duration& duration ) { durations.push_back(duration); }
    void clear() { durations.clear(); }

    /*********************
    ** Statistics
    **********************/
    ecl::Duration average() const;
    ecl::Duration stdDev() const;
    ecl::Duration variance() const;

private:
    std::vector<ecl::Duration> durations;
};

} // namespace ecl

#endif /* ELC_TIME_TIME_DATA_HPP_ */