log_filter.h
Go to the documentation of this file.
1 
28 #ifndef LOG_VIEW_LOG_FILTER_H_
29 #define LOG_VIEW_LOG_FILTER_H_
30 
31 #include <array>
32 #include <cstdint>
33 #include <deque>
34 #include <map>
35 
36 #include <log_view/datatypes.h>
37 #include <log_view/log_store.h>
38 
39 namespace log_view {
40 
41 class LogFilter {
42 public:
43  explicit LogFilter(LogStorePtr& logs);
44 
45  void setCursorOffset(int64_t offset) { cursor_offset_ = offset; }
46 
47  void setFilter(const std::string& filter);
48  std::string getFilterString() const { return filter_string_; }
49  void setExclude(const std::string& exclude);
50  void setDebugLevel(bool enable);
51  void setInfoLevel(bool enable);
52  void setWarnLevel(bool enable);
53  void setErrorLevel(bool enable);
54  void setFatalLevel(bool enable);
55  void setEnableNodeFilter(bool enable);
56  void toggleNode(const std::string& node);
57  void selectAllNodes();
58  void invertNodes();
59 
60  bool getDebugLevel() const { return debug_level_; }
61  bool getInfoLevel() const { return info_level_; }
62  bool getWarnLevel() const { return warn_level_; }
63  bool getErrorLevel() const { return error_level_; }
64  bool getFatalLevel() const { return fatal_level_; }
65  bool getEnableNodeFilter() const { return filter_nodes_; }
66 
67  void reset();
68  void update();
69  void idleProcess();
70 
71  void setCursor(int64_t index);
72  size_t getCursor();
73 
74  void clearSelect();
75 
76  void setSelectStart(int64_t index);
77  int64_t getSelectStart();
78 
79  void setSelectEnd(int64_t index);
80  int64_t getSelectEnd();
81 
82  void search(const std::string& pattern);
83  void nextMatch();
84  void prevMatch();
85  void clearSearch();
86  std::string getSearch() const { return search_; }
87 
88  const std::deque<LogLine>& indices() const { return log_indices_; }
89  const std::map<std::string, NodeData>& nodes() const { return nodes_; }
90 
91  int64_t search_cursor_ = -1;
92  int64_t search_cursor_fwd_ = -1;
93  int64_t search_cursor_rev_ = -1;
94 
95 private:
96  bool accepted(const LogEntry& entry, bool new_entry = false);
97 
99 
100  std::deque<LogLine> log_indices_;
101  size_t latest_log_index_ = 0;
103 
104  int64_t cursor_ = -1;
105  int64_t select_start_ = -1;
106  int64_t select_end_ = -1;
107 
108  int64_t cursor_offset_ = 0;
109 
111  std::string search_;
113 
114  bool debug_level_ = true;
115  bool info_level_ = true;
116  bool warn_level_ = true;
117  bool error_level_ = true;
118  bool fatal_level_ = true;
119  bool filter_nodes_ = false;
120 
121  std::string filter_string_;
122 
123  std::vector<std::string> filter_list_;
124  std::vector<std::string> exclude_list_;
125 
126  std::map<std::string, NodeData> nodes_;
127 };
128 typedef std::shared_ptr<LogFilter> LogFilterPtr;
129 
130 } // namespace log_view
131 
132 #endif // LOG_VIEW_LOG_FILTER_H_
bool getInfoLevel() const
Definition: log_filter.h:61
LogStorePtr logs_
Definition: log_filter.h:98
std::vector< std::string > filter_list_
Definition: log_filter.h:123
bool getWarnLevel() const
Definition: log_filter.h:62
int64_t search_cursor_fwd_
Definition: log_filter.h:92
void setDebugLevel(bool enable)
Definition: log_filter.cpp:74
void setEnableNodeFilter(bool enable)
Definition: log_filter.cpp:109
std::shared_ptr< LogStore > LogStorePtr
Definition: log_store.h:55
void search(const std::string &pattern)
Definition: log_filter.cpp:259
size_t earliest_log_index_
Definition: log_filter.h:102
void setErrorLevel(bool enable)
Definition: log_filter.cpp:95
const std::deque< LogLine > & indices() const
Definition: log_filter.h:88
void setCursor(int64_t index)
Definition: log_filter.cpp:229
void setInfoLevel(bool enable)
Definition: log_filter.cpp:81
void toggleNode(const std::string &node)
Definition: log_filter.cpp:116
const std::map< std::string, NodeData > & nodes() const
Definition: log_filter.h:89
bool getErrorLevel() const
Definition: log_filter.h:63
int64_t getSelectEnd()
Definition: log_filter.cpp:255
int64_t cursor_offset_
Definition: log_filter.h:108
size_t latest_log_index_
Definition: log_filter.h:101
bool accepted(const LogEntry &entry, bool new_entry=false)
Definition: log_filter.cpp:308
void setSelectStart(int64_t index)
Definition: log_filter.cpp:242
void setFatalLevel(bool enable)
Definition: log_filter.cpp:102
bool getFatalLevel() const
Definition: log_filter.h:64
std::map< std::string, NodeData > nodes_
Definition: log_filter.h:126
int64_t search_cursor_rev_
Definition: log_filter.h:93
void setCursorOffset(int64_t offset)
Definition: log_filter.h:45
bool getEnableNodeFilter() const
Definition: log_filter.h:65
std::shared_ptr< LogFilter > LogFilterPtr
Definition: log_filter.h:128
void setExclude(const std::string &exclude)
Definition: log_filter.cpp:57
std::string getSearch() const
Definition: log_filter.h:86
std::string search_
Definition: log_filter.h:111
std::string filter_string_
Definition: log_filter.h:121
int64_t search_cursor_
Definition: log_filter.h:91
int64_t getSelectStart()
Definition: log_filter.cpp:247
void setFilter(const std::string &filter)
Definition: log_filter.cpp:39
bool getDebugLevel() const
Definition: log_filter.h:60
void setWarnLevel(bool enable)
Definition: log_filter.cpp:88
void setSelectEnd(int64_t index)
Definition: log_filter.cpp:251
std::string getFilterString() const
Definition: log_filter.h:48
std::vector< std::string > exclude_list_
Definition: log_filter.h:124
std::deque< LogLine > log_indices_
Definition: log_filter.h:100
LogFilter(LogStorePtr &logs)
Definition: log_filter.cpp:34


log_view
Author(s): Marc Alban
autogenerated on Thu Mar 4 2021 03:21:52