18template <
typename EventSinkType>
31 template <
typename Event>
34 _sink.post(std::forward<Event>(event), priority);
40 template <
typename Event>
43 _sink.postHighPriority(std::forward<Event>(event));
47 template <
typename Event>
50 _sink.post(std::forward<Event>(event), priority);
54 [[nodiscard]]
constexpr EventSinkType&
sink() noexcept
59 [[nodiscard]]
constexpr const EventSinkType&
sink() const noexcept
65 EventSinkType _sink{};
69template <
typename EventSinkType>
70[[nodiscard]]
constexpr auto makeIsrSink(EventSinkType sink)
noexcept
Bounded and multi-tier priority MPSC queueing policies.
Lightweight, zero-overhead wrapper around EventSink explicitly tailored for Hardware ISR handlers....
Definition IsrSink.hpp:19
void postFromIsr(Event &&event, EventPriority priority=EventPriority::Normal) noexcept
Post an event safely from hardware ISR context.
Definition IsrSink.hpp:32
constexpr const EventSinkType & sink() const noexcept
Definition IsrSink.hpp:59
constexpr EventSinkType & sink() noexcept
Access underlying EventSink handle.
Definition IsrSink.hpp:54
void tryPostFromIsr(Event &&event, EventPriority priority=EventPriority::Normal) noexcept
Post an event from ISR context.
Definition IsrSink.hpp:48
void postHighPriorityFromIsr(Event &&event) noexcept
Post a high-priority emergency or hardware interrupt event from ISR context.
Definition IsrSink.hpp:41
constexpr IsrEventSink() noexcept=default
Definition CanAdapter.hpp:16
constexpr auto makeIsrSink(EventSinkType sink) noexcept
Helper function to construct an IsrEventSink from an EventSink handle.
Definition IsrSink.hpp:70
EventPriority
Event priority levels for multi-priority queue policies.
Definition QueuePolicies.hpp:32
DefaultEvents Event
Alias for DefaultEvents.
Definition Events.hpp:65