CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
commrat::LoopExecutor< ModuleType > Class Template Reference

Loop execution logic for Module data threads. More...

#include <commrat/module/lifecycle/loop_executor.hpp>

Inheritance diagram for commrat::LoopExecutor< ModuleType >:
commrat::Module< UserRegistry, OutputSpec_, InputSpec_, CommandTypes... >

Public Member Functions

void periodic_loop ()
 Periodic loop - time-driven data generation.
 
void free_loop ()
 Free loop - maximum throughput data generation.
 
void continuous_loop ()
 Continuous loop - event-driven single input processing.
 
void multi_input_loop ()
 Multi-input loop - synchronized multi-input processing.
 

Protected Member Functions

ModuleType & module ()
 
const ModuleType & module () const
 

Detailed Description

template<typename ModuleType>
class commrat::LoopExecutor< ModuleType >

Loop execution logic for Module data threads.

This class provides loop implementations as a mixin base class. Module inherits from LoopExecutor to get loop methods.

Template parameters match Module's parameters for access to:

  • config_, running_
  • process()
  • Publishing methods
  • Multi-input helper methods

Definition at line 38 of file loop_executor.hpp.

Member Function Documentation

◆ continuous_loop()

template<typename ModuleType >
void commrat::LoopExecutor< ModuleType >::continuous_loop ( )
inline

Continuous loop - event-driven single input processing.

Blocks on data mailbox, processes each received message. Phase 6.10: Uses input timestamp from header (data validity time).

Used for: Input<T> modules (single continuous input)

Definition at line 142 of file loop_executor.hpp.

References commrat::LoopExecutor< ModuleType >::module().

◆ free_loop()

template<typename ModuleType >
void commrat::LoopExecutor< ModuleType >::free_loop ( )
inline

Free loop - maximum throughput data generation.

Generates output as fast as possible without delays. Phase 6.10: Captures timestamp at generation moment.

Used for: LoopInput modules

Definition at line 104 of file loop_executor.hpp.

References commrat::LoopExecutor< ModuleType >::module(), and commrat::Time::now().

◆ module() [1/2]

◆ module() [2/2]

template<typename ModuleType >
const ModuleType & commrat::LoopExecutor< ModuleType >::module ( ) const
inlineprotected

Definition at line 41 of file loop_executor.hpp.

◆ multi_input_loop()

template<typename ModuleType >
void commrat::LoopExecutor< ModuleType >::multi_input_loop ( )
inline

Multi-input loop - synchronized multi-input processing.

Blocks on primary input, synchronizes secondary inputs via getData(), processes all inputs together. Phase 6.10: Uses primary input timestamp as synchronization point.

Used for: Inputs<T, U, V> modules with PrimaryInput<T> specified

Definition at line 175 of file loop_executor.hpp.

References commrat::LoopExecutor< ModuleType >::module().

◆ periodic_loop()

template<typename ModuleType >
void commrat::LoopExecutor< ModuleType >::periodic_loop ( )
inline

Periodic loop - time-driven data generation.

Generates output at fixed intervals (config_.period). Phase 6.10: Captures timestamp at generation moment.

Used for: PeriodicInput modules

Definition at line 52 of file loop_executor.hpp.

References commrat::LoopExecutor< ModuleType >::module(), and commrat::Time::now().


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