tsm  0.1.0
Public Types | Public Member Functions | List of all members
tsm::ThreadedExecWithObserver< Observer, Context, Policy > Struct Template Reference

#include <tsm_impl.h>

Inheritance diagram for tsm::ThreadedExecWithObserver< Observer, Context, Policy >:
Inheritance graph
Collaboration diagram for tsm::ThreadedExecWithObserver< Observer, Context, Policy >:
Collaboration graph

Public Types

using type = ThreadedExecWithObserver< Observer, Context, Policy >
 
using HsmType = typename Policy< Context >::type
 
- Public Types inherited from tsm::ThreadedExecutionPolicy< Context >
using Event = tuple_to_variant_t< Events >
 
using Event = tuple_to_variant_t< get_events_t< Context > >
 
using TaskCallback = void(*)(ThreadedExecutionPolicy *)
 
using type = ThreadedExecutionPolicy< Context, Policy >
 
using HsmType = typename Policy< Context >::type
 

Public Member Functions

void start ()
 
virtual ~ThreadedExecWithObserver ()=default
 
- Public Member Functions inherited from tsm::ThreadedExecutionPolicy< Context >
 ThreadedExecutionPolicy ()
 
virtual ~ThreadedExecutionPolicy ()
 
virtual ~ThreadedExecutionPolicy ()
 
void send_event (const Event &event)
 
void send_event (Event &&event)
 
void start ()
 
void stop ()
 

Additional Inherited Members

- Protected Member Functions inherited from tsm::ThreadedExecutionPolicy< Context >
void step ()
 
void process_event ()
 
void process_event ()
 
- Static Protected Member Functions inherited from tsm::ThreadedExecutionPolicy< Context >
static void StepTask (void *pvParameters)
 
- Protected Attributes inherited from tsm::ThreadedExecutionPolicy< Context >
TaskCallback taskCallback
 
TaskHandle_t smTaskHandle
 
EventQueue eventQueue
 
BaseType_t interrupt_
 
bool interrupt_
 
std::thread smThread_
 
EventQueue< EventeventQueue_
 

Detailed Description

template<typename Observer, typename Context, template< typename > class Policy = ThreadedExecutionPolicy>
struct tsm::ThreadedExecWithObserver< Observer, Context, Policy >

Another Threaded execution policy. The only difference with ThreadedExecutionPolicy is that an Observer's notify method will be invoked at the end of processing each event - specifically, right before the blocking wait for the next event.

Member Typedef Documentation

◆ HsmType

template<typename Observer , typename Context , template< typename > class Policy = ThreadedExecutionPolicy>
using tsm::ThreadedExecWithObserver< Observer, Context, Policy >::HsmType = typename Policy<Context>::type

◆ type

template<typename Observer , typename Context , template< typename > class Policy = ThreadedExecutionPolicy>
using tsm::ThreadedExecWithObserver< Observer, Context, Policy >::type = ThreadedExecWithObserver<Observer, Context, Policy>

Constructor & Destructor Documentation

◆ ~ThreadedExecWithObserver()

template<typename Observer , typename Context , template< typename > class Policy = ThreadedExecutionPolicy>
virtual tsm::ThreadedExecWithObserver< Observer, Context, Policy >::~ThreadedExecWithObserver ( )
virtualdefault

Member Function Documentation

◆ start()

template<typename Observer , typename Context , template< typename > class Policy = ThreadedExecutionPolicy>
void tsm::ThreadedExecWithObserver< Observer, Context, Policy >::start ( )
inline

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