diff --git a/include/sta/signal.hpp b/include/sta/signal.hpp new file mode 100644 index 0000000..e32a204 --- /dev/null +++ b/include/sta/signal.hpp @@ -0,0 +1,37 @@ +#ifndef STA_SIGNAL_HPP +#define STA_SIGNAL_HPP + + +namespace sta +{ + /** + * @brief Signal interface + */ + 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_SIGNAL_HPP