diff --git a/include/sta/event.hpp b/include/sta/event.hpp new file mode 100644 index 0000000..dce0b9e --- /dev/null +++ b/include/sta/event.hpp @@ -0,0 +1,47 @@ +/** + * @file + * @brief Event interface definition. + */ +#ifndef STA_CORE_EVENT_HPP +#define STA_CORE_EVENT_HPP + + +namespace sta +{ + /** + * @brief Interface for event objects. + * + * @ingroup sta_core + */ + class Event + { + public: + /** + * @brief Set event flag. + * + * @param Flag nr. to set + */ + virtual void set(uint32_t flags) = 0; + /** + * @brief Clear event flag. + * + * @param Flag nr. to clear + */ + virtual void clear(uint32_t flags) = 0; + /** + * @brief Check event flag state w/o changing it. + * + * @return Value of event flag + */ + virtual uint32_t get() = 0; + /** + * @brief Wait until event flag is set. Timeout default to forever. + * + * @param Event flag nr. to wait for. + */ + virtual uint32_t wait(uint32_t flags, uint32_t timeout = osWaitForever) = 0; + }; +} // namespace sta + + +#endif //STA_CORE_EVENT_HPP