ARC SDK
JobPerfLog.h
1 #ifndef __ARC_JOB_PERF_LOGGER__
2 #define __ARC_JOB_PERF_LOGGER__
3 
4 #include <time.h>
5 #include <string>
6 
7 namespace Arc {
8 
9 class JobPerfLog {
10  public:
11  JobPerfLog();
12 
13  ~JobPerfLog();
14 
15  void SetOutput(const std::string& filename);
16 
17  void SetEnabled(bool enabled);
18 
19  const std::string& GetOutput() const { return log_path; };
20 
21  bool GetEnabled() const { return log_enabled; };
22 
24  void Log(const std::string& name, const std::string& id, const timespec& start, const timespec& end);
25 
26 
27  private:
28  std::string log_path;
29  bool log_enabled;
30 
31 };
32 
34  public:
37 
39  JobPerfRecord(JobPerfLog& log, const std::string& id);
40 
42  void Start(const std::string& id);
43 
45  void End(const std::string& name);
46 
47  bool Started() { return start_recorded; };
48 
49  private:
50  JobPerfLog& perf_log;
51  bool start_recorded;
52  timespec start_time;
53  std::string start_id;
54 
55 };
56 
57 } // namespace Arc
58 
59 #endif // __ARC_JOB_PERF_LOGGER__
Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
JobPerfRecord(JobPerfLog &log)
void End(const std::string &name)
void Log(const std::string &name, const std::string &id, const timespec &start, const timespec &end)
void Start(const std::string &id)
Definition: JobPerfLog.h:33
Definition: JobPerfLog.h:9