Guitar
TraceEventWriter.h
Go to the documentation of this file.
1 #ifndef TRACEEVENTWRITER_H
2 #define TRACEEVENTWRITER_H
3 
4 #include <chrono>
5 #include <QFile>
6 #include <mutex>
7 
9 public:
10  struct Event {
11  std::string name;
12  std::string category;
13  char phase;
14  uint64_t timestamp;
15  int64_t duration = 0; // only for complete events
16  int32_t pid;
17  int32_t tid;
18  std::string args_comment;
19  };
20  enum Phase {
21  PHASE_BEGIN = 'B',
22  PHASE_END = 'E',
25  };
26 private:
27  std::mutex mutex_;
28  QFile file_;
29  std::chrono::steady_clock::time_point start_time_;
30  uint64_t ts();
31  std::string escape(std::string const &s);
32  void write(Event const &item, bool comma);
33 public:
36  void open(const QString &dir);
37  void close();
38  void put(Event event);
39 };
40 
41 #endif // TRACEEVENTWRITER_H
Definition: TraceEventWriter.h:8
std::mutex mutex_
Definition: TraceEventWriter.h:27
std::chrono::steady_clock::time_point start_time_
Definition: TraceEventWriter.h:29
Phase
Definition: TraceEventWriter.h:20
@ PHASE_BEGIN
Definition: TraceEventWriter.h:21
@ PHASE_COMPLETE
Definition: TraceEventWriter.h:24
@ PHASE_END
Definition: TraceEventWriter.h:22
@ PHASE_COUNTER
Definition: TraceEventWriter.h:23
void write(Event const &item, bool comma)
Definition: TraceEventWriter.cpp:36
uint64_t ts()
Definition: TraceEventWriter.cpp:24
void put(Event event)
Definition: TraceEventWriter.cpp:128
TraceEventWriter()
Definition: TraceEventWriter.cpp:74
QFile file_
Definition: TraceEventWriter.h:28
void close()
Definition: TraceEventWriter.cpp:107
std::string escape(std::string const &s)
Definition: TraceEventWriter.cpp:30
~TraceEventWriter()
Definition: TraceEventWriter.cpp:79
void open(const QString &dir)
Definition: TraceEventWriter.cpp:84
Definition: TraceEventWriter.h:10
std::string category
Definition: TraceEventWriter.h:12
int32_t tid
Definition: TraceEventWriter.h:17
std::string name
Definition: TraceEventWriter.h:11
std::string args_comment
Definition: TraceEventWriter.h:18
char phase
Definition: TraceEventWriter.h:13
int32_t pid
Definition: TraceEventWriter.h:16
int64_t duration
Definition: TraceEventWriter.h:15
uint64_t timestamp
Definition: TraceEventWriter.h:14