/** * @file * @brief Signal interface definition. */ #ifndef STA_CORE_SIGNAL_HPP #define STA_CORE_SIGNAL_HPP namespace sta { /** * @brief Interface for signal objects. * * @ingroup sta_core */ class Signal { public: /** * @brief Enter signaled state. */ virtual void notify() = 0; /** * @brief Check signal state w/o changing it. * * @return True if in signaled state */ virtual bool peek() = 0; /** * @brief Check signal state. * * @return True if in signaled state */ virtual bool test() = 0; /** * @brief Wait until signaled state is entered. */ virtual void wait() = 0; }; } // namespace sta #endif // STA_CORE_SIGNAL_HPP