tsm  0.1.0
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
tsm::ThreadedExecutionPolicy< HsmType, Events > Struct Template Reference

#include <tsm_impl.h>

Inheritance diagram for tsm::ThreadedExecutionPolicy< HsmType, Events >:
Inheritance graph
Collaboration diagram for tsm::ThreadedExecutionPolicy< HsmType, Events >:
Collaboration graph

Public Types

using Event = tuple_to_variant_t< Events >
 
using TaskCallback = void(*)(ThreadedExecutionPolicy *)
 
using type = ThreadedExecutionPolicy< Context, Policy >
 
using HsmType = typename Policy< Context >::type
 
using Event = tuple_to_variant_t< get_events_t< HsmType > >
 

Public Member Functions

 ThreadedExecutionPolicy ()
 
virtual ~ThreadedExecutionPolicy ()
 
void send_event (const Event &event)
 
void start ()
 
void stop ()
 
virtual ~ThreadedExecutionPolicy ()
 
void send_event (Event &&event)
 

Protected Member Functions

void step ()
 
void process_event ()
 
void process_event ()
 

Static Protected Member Functions

static void StepTask (void *pvParameters)
 

Protected Attributes

TaskCallback taskCallback {}
 
TaskHandle_t smTaskHandle {}
 
EventQueue eventQueue
 
BaseType_t interrupt_
 
std::thread smThread_
 
EventQueue< EventeventQueue_
 
bool interrupt_ {}
 

Member Typedef Documentation

◆ Event [1/2]

template<typename HsmType , typename Events >
using tsm::ThreadedExecutionPolicy< HsmType, Events >::Event = tuple_to_variant_t<Events>

◆ Event [2/2]

template<typename HsmType , typename Events >
using tsm::ThreadedExecutionPolicy< HsmType, Events >::Event = tuple_to_variant_t<get_events_t<HsmType> >

◆ HsmType

template<typename HsmType , typename Events >
using tsm::ThreadedExecutionPolicy< HsmType, Events >::HsmType = typename Policy<Context>::type

◆ TaskCallback

template<typename HsmType , typename Events >
using tsm::ThreadedExecutionPolicy< HsmType, Events >::TaskCallback = void (*)(ThreadedExecutionPolicy*)

◆ type

template<typename HsmType , typename Events >
using tsm::ThreadedExecutionPolicy< HsmType, Events >::type = ThreadedExecutionPolicy<Context, Policy>

Constructor & Destructor Documentation

◆ ThreadedExecutionPolicy()

template<typename HsmType , typename Events >
tsm::ThreadedExecutionPolicy< HsmType, Events >::ThreadedExecutionPolicy ( )
inline

◆ ~ThreadedExecutionPolicy() [1/2]

template<typename HsmType , typename Events >
virtual tsm::ThreadedExecutionPolicy< HsmType, Events >::~ThreadedExecutionPolicy ( )
inlinevirtual

◆ ~ThreadedExecutionPolicy() [2/2]

template<typename HsmType , typename Events >
virtual tsm::ThreadedExecutionPolicy< HsmType, Events >::~ThreadedExecutionPolicy ( )
inlinevirtual

Member Function Documentation

◆ process_event() [1/2]

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::process_event ( )
inlineprotected

◆ process_event() [2/2]

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::process_event ( )
inlineprotected

◆ send_event() [1/2]

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::send_event ( const Event event)
inline

◆ send_event() [2/2]

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::send_event ( Event &&  event)
inline

◆ start()

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::start ( )
inline

◆ step()

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::step ( )
inlineprotected

◆ StepTask()

template<typename HsmType , typename Events >
static void tsm::ThreadedExecutionPolicy< HsmType, Events >::StepTask ( void *  pvParameters)
inlinestaticprotected

◆ stop()

template<typename HsmType , typename Events >
void tsm::ThreadedExecutionPolicy< HsmType, Events >::stop ( )
inline

Member Data Documentation

◆ eventQueue

template<typename HsmType , typename Events >
EventQueue tsm::ThreadedExecutionPolicy< HsmType, Events >::eventQueue
protected

◆ eventQueue_

template<typename HsmType , typename Events >
EventQueue<Event> tsm::ThreadedExecutionPolicy< HsmType, Events >::eventQueue_
protected

◆ interrupt_ [1/2]

template<typename HsmType , typename Events >
BaseType_t tsm::ThreadedExecutionPolicy< HsmType, Events >::interrupt_
protected

◆ interrupt_ [2/2]

template<typename HsmType , typename Events >
bool tsm::ThreadedExecutionPolicy< HsmType, Events >::interrupt_ {}
protected

◆ smTaskHandle

template<typename HsmType , typename Events >
TaskHandle_t tsm::ThreadedExecutionPolicy< HsmType, Events >::smTaskHandle {}
protected

◆ smThread_

template<typename HsmType , typename Events >
std::thread tsm::ThreadedExecutionPolicy< HsmType, Events >::smThread_
protected

◆ taskCallback

template<typename HsmType , typename Events >
TaskCallback tsm::ThreadedExecutionPolicy< HsmType, Events >::taskCallback {}
protected

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