13fb52e53SBen Tyner #include <attn/attn_config.hpp>
23fb52e53SBen Tyner 
33fb52e53SBen Tyner namespace attn
43fb52e53SBen Tyner {
53fb52e53SBen Tyner 
63fb52e53SBen Tyner /** @brief Main constructor */
Config()772feadcfSBen Tyner Config::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 Tyner bool 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 Tyner void 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 Tyner void 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 Tyner void 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 Tyner void 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