ANNA Suite  2020b
Multipurpose development suite for Telco applications
Configuration.hpp
Go to the documentation of this file.
1 // ANNA - Anna is Not Nothingness Anymore //
2 // //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
4 // //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7 
8 
9 #ifndef anna_core_tracing_Configuration_hpp
10 #define anna_core_tracing_Configuration_hpp
11 
12 
13 
14 #include <anna/core/Singleton.hpp>
16 
18 
19 // STL
20 #include <string>
21 #include <map>
22 
23 
24 
25 namespace anna {
26 
27 namespace tracing {
28 
29 
33 class Configuration : public anna::Singleton <Configuration> {
34 
35 
36 public:
37 
38  typedef std::map<anna::RegularExpression, anna::Logger::Level> trace_trigger_map_t;
39 
40 private:
41 
42  trace_trigger_map_t a_traceTriggers; // configured triggers map, for selective tracing
43  bool a_readTraceTriggersAsRegexp; // boolean to configure the way in which trace triggers are interpreted
44 
45 
46  Configuration() { a_readTraceTriggersAsRegexp = false; } // private constructor
47 
49  friend class TraceLevelChecker;
50 
51 
52  const trace_trigger_map_t & getTraceTriggers() const { return a_traceTriggers; }
53 
54 
55 public:
56 
60  void resetTraceTriggers() { a_traceTriggers.clear(); }
61 
62 
75  void activateTraceTrigger(const std::string & trigger, bool accumulate = false, anna::Logger::Level level = anna::Logger::Debug) ;
76 
77 
83  void deactivateTraceTrigger(const std::string & trigger) ;
84 
85 
93  bool readRegexpForTraceTriggers() const { return (a_readTraceTriggersAsRegexp); }
94 
95 
103  void useRegexpForTraceTriggers(bool readRegexp = true) { a_readTraceTriggersAsRegexp = readRegexp; }
104 
105 
111  std::string asString(void) const ;
112 };
113 
114 }
115 }
116 
117 #endif
118 
void activateTraceTrigger(const std::string &trigger, bool accumulate=false, anna::Logger::Level level=anna::Logger::Debug)
Level
Definition: Logger.hpp:39
bool readRegexpForTraceTriggers() const
Definition: Configuration.hpp:93
Definition: Logger.hpp:42
void resetTraceTriggers()
Definition: Configuration.hpp:60
void deactivateTraceTrigger(const std::string &trigger)
Definition: Singleton.hpp:76
std::map< anna::RegularExpression, anna::Logger::Level > trace_trigger_map_t
Definition: Configuration.hpp:38
void useRegexpForTraceTriggers(bool readRegexp=true)
Definition: Configuration.hpp:103
Definition: Configuration.hpp:33
std::string asString(void) const
Definition: app.hpp:12
Definition: TraceLevelChecker.hpp:30