13fb52e53SBen Tyner #include <attn/attn_config.hpp>
23fb52e53SBen Tyner 
33fb52e53SBen Tyner namespace attn
43fb52e53SBen Tyner {
53fb52e53SBen Tyner 
63fb52e53SBen Tyner /** @brief Main constructor */
7*72feadcfSBen Tyner Config::Config()
83fb52e53SBen Tyner {
9*72feadcfSBen Tyner     setFlagAll();
103fb52e53SBen Tyner }
113fb52e53SBen Tyner 
123fb52e53SBen Tyner /** @brief Get state of flag */
133fb52e53SBen Tyner bool Config::getFlag(AttentionFlag i_flag) const
143fb52e53SBen Tyner {
153fb52e53SBen Tyner     return (iv_flags.test(i_flag));
163fb52e53SBen Tyner }
173fb52e53SBen Tyner 
183fb52e53SBen Tyner /** @brief Set configuration flag */
193fb52e53SBen Tyner void Config::setFlag(AttentionFlag i_flag)
203fb52e53SBen Tyner {
213fb52e53SBen Tyner     iv_flags.set(i_flag);
223fb52e53SBen Tyner }
233fb52e53SBen Tyner 
24*72feadcfSBen Tyner /** @brief Set all configuration flags */
25*72feadcfSBen Tyner void Config::setFlagAll()
26*72feadcfSBen Tyner {
27*72feadcfSBen Tyner     iv_flags.set(enVital);
28*72feadcfSBen Tyner     iv_flags.set(enCheckstop);
29*72feadcfSBen Tyner     iv_flags.set(enTerminate);
30*72feadcfSBen Tyner     iv_flags.set(enBreakpoints);
31*72feadcfSBen Tyner }
32*72feadcfSBen Tyner 
333fb52e53SBen Tyner /** @brief Clear configuration flag */
343fb52e53SBen Tyner void Config::clearFlag(AttentionFlag i_flag)
353fb52e53SBen Tyner {
363fb52e53SBen Tyner     iv_flags.reset(i_flag);
373fb52e53SBen Tyner }
383fb52e53SBen Tyner 
39*72feadcfSBen Tyner /** @brief Clear all configuration flags */
40*72feadcfSBen Tyner void Config::clearFlagAll()
413fb52e53SBen Tyner {
42*72feadcfSBen Tyner     iv_flags.reset(enVital);
43*72feadcfSBen Tyner     iv_flags.reset(enCheckstop);
44*72feadcfSBen Tyner     iv_flags.reset(enTerminate);
45*72feadcfSBen Tyner     iv_flags.reset(enBreakpoints);
463fb52e53SBen Tyner }
473fb52e53SBen Tyner 
483fb52e53SBen Tyner } // namespace attn
49