← Documentation
ADS-IDAC Engine 5.0.0
Timer.h
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <typeinfo>
5// Timer.h: interface for the Timer class.
6//
8
9#include <fstream>
10#include <math.h>
11#include <boost/serialization/serialization.hpp>
12#include <boost/archive/text_oarchive.hpp>
13#include <boost/archive/text_iarchive.hpp>
14#include <boost/serialization/export.hpp>
15
16
17class Timer {
18 public:
19 // Execution-state subset for seeded-container walks. The Weibull parameters
20 // and t_minimum are definitions and are not part of it; serialize() carries
21 // every member for users that serialize a whole Timer.
22 template<class Archive> void timer_state_save(Archive& ar) const {
25 }
26 template<class Archive> void timer_state_load(Archive& ar) {
29 }
30
31 double calculateRequiredTime();
32 double calculateRequiredTime(double);
34 double calculateMeanRequiredTime(double, double);
35 double calculateWeibull_pdf(double);
36 Timer();
37 virtual ~Timer();
38 void setRemainingTime(double);
39 void setTotalTimeRequired(double);
40 void setAlpha_Weibull(double);
41 void setBeta_Weibull(double);
42 void setT_Minimum(double);
43 double getTotalTimeRequired();
44 double getRemainingTime();
45 double reduceRemainingTime(double);
46 double getAlpha_Weibull();
47 double getBeta_Weibull();
48 double getT_Minimum();
49 void copyTimer(Timer &);
50 int getNumberOfIntervals() const;
51 void setNumberOfIntervals(int);
54 double getTimeAtDemand() const;
55 void setTimeAtDemand(double);
56 void saveTimerToFile(std::ofstream &);
57 void retrieveTimerFromFile(std::ifstream &);
61template<class Archive>
62void serialize(Archive & ar, const unsigned int version) {
63// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
64 ar & beta_weibull;
65 ar & alpha_weibull;
66 ar & t_minimum;
67 ar & remaining_time;
71 ar & time_at_demand;
72}
73 private:
76 double t_minimum;
82};
83
84
85BOOST_CLASS_EXPORT_KEY(Timer)
Definition: Timer.h:17
void serialize(Archive &ar, const unsigned int version)
Definition: Timer.h:62
virtual ~Timer()
Definition: Timer.cpp:27
void saveTimerToFile(std::ofstream &)
Definition: Timer.cpp:54
void setBothTotalTimeRequiredAndRemainingTime(double)
Definition: Timer.cpp:71
void retrieveTimerFromFile(std::ifstream &)
Definition: Timer.cpp:59
void setTimeAtDemand(double)
Definition: Timer.cpp:171
void setRemainingTime(double)
Definition: Timer.cpp:30
double time_at_demand
Definition: Timer.h:81
double getBeta_Weibull()
Definition: Timer.cpp:37
double remaining_time
Definition: Timer.h:77
Timer()
Definition: Timer.cpp:16
int getNumberOfIntervalsPassed() const
Definition: Timer.cpp:162
void copyTimer(Timer &)
Definition: Timer.cpp:44
double total_time_required
Definition: Timer.h:78
double calculateWeibull_pdf(double)
Definition: Timer.cpp:91
double alpha_weibull
Definition: Timer.h:75
double calculateRequiredTime()
Definition: Timer.cpp:76
double getTotalTimeRequired()
Definition: Timer.cpp:33
double getRemainingTime()
Definition: Timer.cpp:31
double getTimeAtDemand() const
Definition: Timer.cpp:168
void setT_Minimum(double)
Definition: Timer.cpp:38
void timer_state_save(Archive &ar) const
Definition: Timer.h:22
void setNumberOfIntervalsPassed(int)
Definition: Timer.cpp:165
double calculateMeanRequiredTime()
Definition: Timer.cpp:131
void setBeta_Weibull(double)
Definition: Timer.cpp:36
double t_minimum
Definition: Timer.h:76
int number_of_intervals
Definition: Timer.h:79
double beta_weibull
Definition: Timer.h:74
void setAlpha_Weibull(double)
Definition: Timer.cpp:34
friend class boost::serialization::access
Definition: Timer.h:60
void setTotalTimeRequired(double)
Definition: Timer.cpp:32
int number_of_intervals_passed
Definition: Timer.h:80
void timer_state_load(Archive &ar)
Definition: Timer.h:26
double getT_Minimum()
Definition: Timer.cpp:39
double reduceRemainingTime(double)
Definition: Timer.cpp:40
int getNumberOfIntervals() const
Definition: Timer.cpp:156
bool checkIfIsIdenticalTimer(Timer &)
Definition: Timer.cpp:64
double getAlpha_Weibull()
Definition: Timer.cpp:35
void setNumberOfIntervals(int)
Definition: Timer.cpp:159