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  int32_t pid;
16  int32_t tid;
17  std::string args_comment;
18  };
19  enum Phase {
20  PHASE_BEGIN = 'B',
21  PHASE_END = 'E',
24  };
25 private:
26  std::mutex mutex_;
27  QFile file_;
28  std::chrono::steady_clock::time_point start_time_;
29  uint64_t ts();
30  std::string escape(std::string const &s);
31  void write(Event const &item, bool comma);
32 public:
35  void open();
36  void close();
37  void put(Event event);
38 };
39 
40 #endif // TRACEEVENTWRITER_H
Definition: TraceEventWriter.h:8
std::mutex mutex_
Definition: TraceEventWriter.h:26
std::chrono::steady_clock::time_point start_time_
Definition: TraceEventWriter.h:28
Phase
Definition: TraceEventWriter.h:19
@ PHASE_BEGIN
Definition: TraceEventWriter.h:20
@ PHASE_COMPLETE
Definition: TraceEventWriter.h:23
@ PHASE_END
Definition: TraceEventWriter.h:21
@ PHASE_COUNTER
Definition: TraceEventWriter.h:22
void write(Event const &item, bool comma)
Definition: TraceEventWriter.cpp:35
uint64_t ts()
Definition: TraceEventWriter.cpp:23
void put(Event event)
Definition: TraceEventWriter.cpp:113
void open()
Definition: TraceEventWriter.cpp:74
TraceEventWriter()
Definition: TraceEventWriter.cpp:64
QFile file_
Definition: TraceEventWriter.h:27
void close()
Definition: TraceEventWriter.cpp:92
std::string escape(std::string const &s)
Definition: TraceEventWriter.cpp:29
~TraceEventWriter()
Definition: TraceEventWriter.cpp:69
Definition: TraceEventWriter.h:10
std::string category
Definition: TraceEventWriter.h:12
int32_t tid
Definition: TraceEventWriter.h:16
std::string name
Definition: TraceEventWriter.h:11
std::string args_comment
Definition: TraceEventWriter.h:17
char phase
Definition: TraceEventWriter.h:13
int32_t pid
Definition: TraceEventWriter.h:15
uint64_t timestamp
Definition: TraceEventWriter.h:14