1 #include <attn/attn_config.hpp>
2 
3 namespace attn
4 {
5 
6 /** @brief Main constructor */
7 Config::Config(bool i_vital, bool i_checkstop, bool i_terminate,
8                bool i_breakpoints)
9 {
10     setConfig(i_vital, i_checkstop, i_terminate, i_breakpoints);
11 }
12 
13 /** @brief Get state of flag */
14 bool Config::getFlag(AttentionFlag i_flag) const
15 {
16     return (iv_flags.test(i_flag));
17 }
18 
19 /** @brief Set configuration flag */
20 void Config::setFlag(AttentionFlag i_flag)
21 {
22     iv_flags.set(i_flag);
23 }
24 
25 /** @brief Clear configuration flag */
26 void Config::clearFlag(AttentionFlag i_flag)
27 {
28     iv_flags.reset(i_flag);
29 }
30 
31 /** @brief Set state of all configuration data */
32 void Config::setConfig(bool i_vital, bool i_checkstop, bool i_terminate,
33                        bool i_breakpoints)
34 {
35     (true == i_vital) ? iv_flags.set(enVital) : iv_flags.reset(enVital);
36 
37     (true == i_checkstop) ? iv_flags.set(enCheckstop)
38                           : iv_flags.reset(enCheckstop);
39 
40     (true == i_terminate) ? iv_flags.set(enTerminate)
41                           : iv_flags.reset(enTerminate);
42 
43     (true == i_breakpoints) ? iv_flags.set(enBreakpoints)
44                             : iv_flags.reset(enBreakpoints);
45 }
46 
47 } // namespace attn
48