Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
corium::embedded::FreeRtosIsrSink< EventSinkType > Class Template Reference

FreeRTOS-specialized ISR sink managing RTOS task context switches. More...

#include <FreeRtos.hpp>

+ Collaboration diagram for corium::embedded::FreeRtosIsrSink< EventSinkType >:

Public Member Functions

constexpr FreeRtosIsrSink () noexcept=default
 
constexpr FreeRtosIsrSink (EventSinkType sink) noexcept
 
template<typename Event >
void postFromIsr (Event &&event, BaseType_t *pxHigherPriorityTaskWoken=nullptr, EventPriority priority=EventPriority::Normal) noexcept
 Post event from FreeRTOS ISR and track if context switch is needed.
 
template<typename Event >
void postHighPriorityFromIsr (Event &&event, BaseType_t *pxHigherPriorityTaskWoken=nullptr) noexcept
 Post high priority event from FreeRTOS ISR and track context switch.
 
constexpr const EventSinkType & sink () const noexcept
 
constexpr EventSinkType & sink () noexcept
 Access underlying sink handle.
 

Static Public Member Functions

static void yieldFromIsr (BaseType_t xHigherPriorityTaskWoken) noexcept
 Yield to higher priority unblocked task if flag was set.
 

Detailed Description

template<typename EventSinkType>
class corium::embedded::FreeRtosIsrSink< EventSinkType >

FreeRTOS-specialized ISR sink managing RTOS task context switches.

Template Parameters
EventSinkTypeTarget underlying event sink.

Constructor & Destructor Documentation

◆ FreeRtosIsrSink() [1/2]

template<typename EventSinkType >
constexpr corium::embedded::FreeRtosIsrSink< EventSinkType >::FreeRtosIsrSink ( )
constexprdefaultnoexcept

◆ FreeRtosIsrSink() [2/2]

template<typename EventSinkType >
constexpr corium::embedded::FreeRtosIsrSink< EventSinkType >::FreeRtosIsrSink ( EventSinkType  sink)
inlineexplicitconstexprnoexcept

Member Function Documentation

◆ postFromIsr()

template<typename EventSinkType >
template<typename Event >
void corium::embedded::FreeRtosIsrSink< EventSinkType >::postFromIsr ( Event &&  event,
BaseType_t pxHigherPriorityTaskWoken = nullptr,
EventPriority  priority = EventPriority::Normal 
)
inlinenoexcept

Post event from FreeRTOS ISR and track if context switch is needed.

Template Parameters
EventConcrete event type.
Parameters
eventEvent instance.
pxHigherPriorityTaskWokenPointer to FreeRTOS task unblocking flag.
priorityEvent priority level.

◆ postHighPriorityFromIsr()

template<typename EventSinkType >
template<typename Event >
void corium::embedded::FreeRtosIsrSink< EventSinkType >::postHighPriorityFromIsr ( Event &&  event,
BaseType_t pxHigherPriorityTaskWoken = nullptr 
)
inlinenoexcept

Post high priority event from FreeRTOS ISR and track context switch.

◆ sink() [1/2]

template<typename EventSinkType >
constexpr const EventSinkType & corium::embedded::FreeRtosIsrSink< EventSinkType >::sink ( ) const
inlineconstexprnoexcept

◆ sink() [2/2]

template<typename EventSinkType >
constexpr EventSinkType & corium::embedded::FreeRtosIsrSink< EventSinkType >::sink ( )
inlineconstexprnoexcept

Access underlying sink handle.

◆ yieldFromIsr()

template<typename EventSinkType >
static void corium::embedded::FreeRtosIsrSink< EventSinkType >::yieldFromIsr ( BaseType_t  xHigherPriorityTaskWoken)
inlinestaticnoexcept

Yield to higher priority unblocked task if flag was set.


The documentation for this class was generated from the following file: