1 #ifndef BON_TIME_H 2 #define BON_TIME_H 3 4 #include "bonnie.h" 5 #include "duration.h" 6 #include "rand.h" 7 8 struct report_s 9 { 10 double CPU; 11 double StartTime; 12 double EndTime; 13 double Latency; 14 }; 15 16 struct delta_s 17 { 18 double CPU; 19 double Elapsed; 20 double FirstStart; 21 double LastStop; 22 double Latency; 23 }; 24 25 class BonTimer 26 { 27 public: 28 enum RepType { csv, txt }; 29 30 BonTimer(); 31 32 void start(); 33 void stop_and_record(tests_t test); 34 void add_delta_report(report_s &rep, tests_t test); 35 int DoReportIO(int file_size, int char_file_size 36 , int io_chunk_size, int Seeks, int SeekProcCount, FILE *fp); 37 int DoReportFile(int directory_size 38 , int max_size, int min_size, int num_directories 39 , int file_chunk_size, FILE *fp); SetType(RepType type)40 void SetType(RepType type) { m_type = type; } 41 double cpu_so_far(); 42 double time_so_far(); 43 void PrintHeader(FILE *fp); 44 void Initialize(); 45 static double get_cur_time(); 46 static double get_cpu_use(); 47 48 void add_latency(tests_t test, double t); 49 setMachineName(CPCCHAR name)50 void setMachineName(CPCCHAR name) { m_name = name; } 51 setConcurrency(int con)52 void setConcurrency(int con) { m_concurrency = con; } 53 54 Rand random_source; 55 56 private: 57 int print_cpu_stat(tests_t test); 58 int print_stat(tests_t test, int test_size); 59 int print_latency(tests_t test); 60 61 delta_s m_delta[TestCount]; 62 RepType m_type; 63 FILE *m_fp; 64 Duration m_dur; 65 CPU_Duration m_cpu_dur; 66 PCCHAR m_name; 67 int m_concurrency; 68 69 BonTimer(const BonTimer&); 70 BonTimer &operator=(const BonTimer&); 71 }; 72 73 #endif 74