log_parser.h
Go to the documentation of this file.
1 // Splits the log stream into individual messages
2 // Author: Max Schwarz <max.schwarz@ais.uni-bonn.de>
3 
4 #ifndef ROSMON_MONITOR_LOG_PARSER_H
5 #define ROSMON_MONITOR_LOG_PARSER_H
6 
7 #include <chrono>
8 #include <memory>
9 #include <functional>
10 
11 #include "../log_event.h"
12 
13 namespace rosmon
14 {
15 namespace monitor
16 {
17 
18 class LogParser
19 {
20 public:
21  LogParser();
22  ~LogParser();
23 
24  struct Event
25  {
26  std::string message;
28  };
29 
30  void setCallback(const std::function<void(Event&&)>& cb);
31 
32  void process(const char* input, std::size_t size, const std::chrono::steady_clock::time_point& time = std::chrono::steady_clock::now());
33 
34  inline void processString(const std::string& str, const std::chrono::steady_clock::time_point& time = std::chrono::steady_clock::now())
35  { process(str.c_str(), str.length(), time); }
36 
37  void checkPending(const std::chrono::steady_clock::time_point& time = std::chrono::steady_clock::now());
38 
39  void flush();
40 
41 private:
42  class Private;
43  std::unique_ptr<Private> m_d;
44 };
45 
46 }
47 }
48 
49 
50 #endif
void setCallback(const std::function< void(Event &&)> &cb)
Definition: log_parser.cpp:211
void checkPending(const std::chrono::steady_clock::time_point &time=std::chrono::steady_clock::now())
Definition: log_parser.cpp:216
void processString(const std::string &str, const std::chrono::steady_clock::time_point &time=std::chrono::steady_clock::now())
Definition: log_parser.h:34
void process(const char *input, std::size_t size, const std::chrono::steady_clock::time_point &time=std::chrono::steady_clock::now())
Definition: log_parser.cpp:205
std::unique_ptr< Private > m_d
Definition: log_parser.h:42


rosmon_core
Author(s): Max Schwarz
autogenerated on Fri Jun 16 2023 02:15:06