1#ifndef BON_TIME_H
2#define BON_TIME_H
3
4#include "bonnie.h"
5
6struct report_s
7{
8  double CPU;
9  double StartTime;
10  double EndTime;
11};
12
13struct delta_s
14{
15  double CPU;
16  double Elapsed;
17  double FirstStart;
18  double LastStop;
19};
20
21class BonTimer
22{
23public:
24  enum RepType { csv, txt };
25
26  BonTimer();
27
28  void timestamp();
29  void get_delta_t(tests_t test);
30  void get_delta_report(report_s &rep);
31  void add_delta_report(report_s &rep, tests_t test);
32  int DoReport(CPCCHAR machine, int size, int directory_size
33             , int max_size, int min_size, int num_directories
34             , int chunk_size, FILE *fp);
35  void SetType(RepType type) { m_type = type; }
36  double cpu_so_far();
37  double time_so_far();
38  void PrintHeader(FILE *fp);
39  void Initialize();
40  static double get_cur_time();
41  static double get_cpu_use();
42
43private:
44  int print_cpu_stat(tests_t test);
45  int print_stat(tests_t test);
46  int print_file_stat(tests_t test);
47
48  delta_s m_delta[TestCount];
49  double m_last_cpustamp;
50  double m_last_timestamp;
51  RepType m_type;
52  int m_file_size;
53  int m_directory_size;
54  int m_chunk_size;
55  FILE *m_fp;
56
57  BonTimer(const BonTimer&);
58  BonTimer &operator=(const BonTimer&);
59};
60
61#endif
62