13fb52e53SBen Tyner #include <attn/attn_config.hpp> 23fb52e53SBen Tyner 33fb52e53SBen Tyner namespace attn 43fb52e53SBen Tyner { 53fb52e53SBen Tyner 63fb52e53SBen Tyner /** @brief Main constructor */ Config()772feadcfSBen TynerConfig::Config() 83fb52e53SBen Tyner { 972feadcfSBen Tyner setFlagAll(); 10fe15649eSBen Tyner iv_flags.reset(dfltTi); // default value is clear 113fb52e53SBen Tyner } 123fb52e53SBen Tyner 133fb52e53SBen Tyner /** @brief Get state of flag */ getFlag(AttentionFlag i_flag) const143fb52e53SBen Tynerbool Config::getFlag(AttentionFlag i_flag) const 153fb52e53SBen Tyner { 163fb52e53SBen Tyner return (iv_flags.test(i_flag)); 173fb52e53SBen Tyner } 183fb52e53SBen Tyner 193fb52e53SBen Tyner /** @brief Set configuration flag */ setFlag(AttentionFlag i_flag)203fb52e53SBen Tynervoid Config::setFlag(AttentionFlag i_flag) 213fb52e53SBen Tyner { 223fb52e53SBen Tyner iv_flags.set(i_flag); 233fb52e53SBen Tyner } 243fb52e53SBen Tyner 2572feadcfSBen Tyner /** @brief Set all configuration flags */ setFlagAll()2672feadcfSBen Tynervoid Config::setFlagAll() 2772feadcfSBen Tyner { 2872feadcfSBen Tyner iv_flags.set(enVital); 2972feadcfSBen Tyner iv_flags.set(enCheckstop); 3072feadcfSBen Tyner iv_flags.set(enTerminate); 3172feadcfSBen Tyner iv_flags.set(enBreakpoints); 32*d28d5f8bSaustinfcui iv_flags.set(enClrAttnIntr); 3372feadcfSBen Tyner } 3472feadcfSBen Tyner 353fb52e53SBen Tyner /** @brief Clear configuration flag */ clearFlag(AttentionFlag i_flag)363fb52e53SBen Tynervoid Config::clearFlag(AttentionFlag i_flag) 373fb52e53SBen Tyner { 383fb52e53SBen Tyner iv_flags.reset(i_flag); 393fb52e53SBen Tyner } 403fb52e53SBen Tyner 4172feadcfSBen Tyner /** @brief Clear all configuration flags */ clearFlagAll()4272feadcfSBen Tynervoid Config::clearFlagAll() 433fb52e53SBen Tyner { 4472feadcfSBen Tyner iv_flags.reset(enVital); 4572feadcfSBen Tyner iv_flags.reset(enCheckstop); 4672feadcfSBen Tyner iv_flags.reset(enTerminate); 4772feadcfSBen Tyner iv_flags.reset(enBreakpoints); 48*d28d5f8bSaustinfcui iv_flags.reset(enClrAttnIntr); 493fb52e53SBen Tyner } 503fb52e53SBen Tyner 513fb52e53SBen Tyner } // namespace attn 52