16#include <ove/eventgroup.h>
19#ifdef CONFIG_OVE_EVENTGROUP
43#ifdef CONFIG_OVE_ZERO_HEAP
44 int err = ove_eventgroup_init(&handle_, &storage_);
46 int err = ove_eventgroup_create(&handle_);
48 OVE_STATIC_INIT_ASSERT(err == OVE_OK);
56#ifdef CONFIG_OVE_ZERO_HEAP
57 ove_eventgroup_deinit(handle_);
59 ove_eventgroup_destroy(handle_);
66#ifdef CONFIG_OVE_ZERO_HEAP
75 other.handle_ =
nullptr;
85 if (handle_) ove_eventgroup_destroy(handle_);
86 handle_ = other.handle_;
87 other.handle_ =
nullptr;
98 ove_eventbits_t
set_bits(ove_eventbits_t bits) {
99 return ove_eventgroup_set_bits(handle_, bits);
108 return ove_eventgroup_clear_bits(handle_, bits);
123 ove_eventbits_t *result) {
124 return ove_eventgroup_wait_bits(handle_, bits, flags,
134 return ove_eventgroup_set_bits_from_isr(handle_, bits);
142 return ove_eventgroup_get_bits(handle_);
149 bool valid()
const {
return handle_ !=
nullptr; }
155 ove_eventgroup_t
handle()
const {
return handle_; }
158 ove_eventgroup_t handle_ =
nullptr;
159#ifdef CONFIG_OVE_ZERO_HEAP
160 ove_eventgroup_storage_t storage_ = {};
RAII wrapper around an oveRTOS event-group (bit-field synchronisation object).
Definition eventgroup.hpp:35
int wait_bits(ove_eventbits_t bits, uint32_t flags, uint32_t timeout_ms, ove_eventbits_t *result)
Waits until the specified event bits are set, or until the timeout expires.
Definition eventgroup.hpp:120
EventGroup & operator=(EventGroup &&other) noexcept
Move-assignment operator — transfers ownership of the kernel handle.
Definition eventgroup.hpp:83
ove_eventbits_t set_bits_from_isr(ove_eventbits_t bits)
Sets one or more event bits from an ISR context.
Definition eventgroup.hpp:133
bool valid() const
Returns true if the underlying kernel handle is non-null.
Definition eventgroup.hpp:149
EventGroup()
Constructs and initialises the event group with all bits cleared.
Definition eventgroup.hpp:42
ove_eventgroup_t handle() const
Returns the raw oveRTOS event-group handle.
Definition eventgroup.hpp:155
ove_eventbits_t get_bits() const
Returns the current value of all event bits without blocking.
Definition eventgroup.hpp:141
ove_eventbits_t clear_bits(ove_eventbits_t bits)
Clears one or more event bits atomically.
Definition eventgroup.hpp:107
ove_eventbits_t set_bits(ove_eventbits_t bits)
Sets one or more event bits atomically.
Definition eventgroup.hpp:98
EventGroup(EventGroup &&other) noexcept
Move constructor — transfers ownership of the kernel handle.
Definition eventgroup.hpp:74
~EventGroup()
Destroys the event group, releasing the underlying kernel resource.
Definition eventgroup.hpp:54
Top-level namespace for all oveRTOS C++ abstractions.
Definition app.hpp:19
Common type definitions and concepts for the C++ wrapper layer.