DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
Loading...
Searching...
No Matches
diffeq::signal::SignalProcessor< S > Class Template Reference

Simple signal processor. More...

#include <signal_processor.hpp>

Public Types

using state_type = S
 
template<typename T >
using SignalHandler = std::function< void(const Signal< T > &)>
 
using state_type = S
 
using time_type = typename S::value_type
 
template<typename T >
using SignalHandler = std::function< void(const Signal< T > &)>
 
using state_type = S
 
template<typename T >
using SignalHandler = std::function< void(const Signal< T > &)>
 
using state_type = S
 
using time_type = T
 
using value_type = typename S::value_type
 
using integrator_type = AsyncIntegrator< S, T >
 
using parameter_signal = Signal< std::unordered_map< std::string, double > >
 
using control_signal = Signal< std::vector< double > >
 
using market_signal = Signal< std::unordered_map< std::string, double > >
 
using state_type = S
 
using time_type = typename S::value_type
 
template<typename T >
using SignalHandler = std::function< void(const Signal< T > &)>
 

Public Member Functions

template<typename T >
void emit_signal (std::string_view signal_type, T &&data, double priority=1.0)
 Emit a signal with arbitrary data.
 
template<typename T , typename Handler >
void register_handler (std::string_view signal_type, Handler &&handler)
 Register a typed signal handler.
 
template<typename T >
void emit_signal (std::string_view signal_type, T &&data, double priority=1.0)
 Emit a signal with arbitrary data.
 
template<typename T , typename Handler >
void register_handler (std::string_view signal_type, Handler &&handler)
 Register a typed signal handler.
 
void update_parameter (const std::string &param_name, double value)
 Update integration parameters.
 
template<typename T >
void emit_signal (std::string_view signal_type, T &&data, double priority=1.0)
 Emit a signal with arbitrary data.
 
template<typename T , typename Handler >
void register_handler (std::string_view signal_type, Handler &&handler)
 Register a typed signal handler.
 
 SignalProcessor (std::shared_ptr< integrator_type > integrator)
 
void process_parameter_signal (const parameter_signal &signal)
 Process parameter update signal.
 
void process_control_signal (const control_signal &signal)
 Process control signal (for robotics)
 
void process_market_signal (const market_signal &signal)
 Process market signal (for finance)
 
const std::vector< double > & get_control_targets () const
 Get current control targets.
 
double get_market_data (const std::string &symbol) const
 Get market data for symbol.
 
void update_parameter (const std::string &name, double value)
 Update integration parameter.
 
double get_parameter (const std::string &name) const
 Get parameter value.
 
template<typename SignalType , SignalHandler< SignalType > Handler>
void register_handler (const std::string &signal_type, Handler &&handler)
 Register custom signal handler.
 
template<typename SignalType >
void process_signal (const SignalType &signal)
 Process generic signal.
 
template<typename T >
void emit_signal (std::string_view signal_type, T &&data, double priority=1.0)
 Emit a signal with arbitrary data.
 
template<typename T , typename Handler >
void register_handler (std::string_view signal_type, Handler &&handler)
 Register a typed signal handler.
 
void update_parameter (const std::string &param_name, double value)
 Update integration parameters.
 

Detailed Description

template<typename S>
class diffeq::signal::SignalProcessor< S >

Simple signal processor.

Simple signal processor for integrator callbacks.

Lightweight signal processor using standard C++ only.

This replaces the complex event bus system with a simple, type-safe signal handling mechanism.

This provides a lightweight way to process signals and update integration parameters without heavy communication dependencies.

Definition at line 35 of file signal_processor.hpp.

Member Typedef Documentation

◆ control_signal

template<typename S >
using diffeq::signal::SignalProcessor< S >::control_signal = Signal<std::vector<double> >

Definition at line 62 of file signal_processor_old.hpp.

◆ integrator_type

template<typename S >
using diffeq::signal::SignalProcessor< S >::integrator_type = AsyncIntegrator<S, T>

Definition at line 58 of file signal_processor_old.hpp.

◆ market_signal

template<typename S >
using diffeq::signal::SignalProcessor< S >::market_signal = Signal<std::unordered_map<std::string, double> >

Definition at line 63 of file signal_processor_old.hpp.

◆ parameter_signal

template<typename S >
using diffeq::signal::SignalProcessor< S >::parameter_signal = Signal<std::unordered_map<std::string, double> >

Definition at line 61 of file signal_processor_old.hpp.

◆ SignalHandler [1/4]

template<typename S >
template<typename T >
using diffeq::signal::SignalProcessor< S >::SignalHandler = std::function<void(const Signal<T>&)>

Definition at line 41 of file signal_processor.hpp.

◆ SignalHandler [2/4]

template<typename S >
template<typename T >
using diffeq::signal::SignalProcessor< S >::SignalHandler = std::function<void(const Signal<T>&)>

Definition at line 54 of file signal_processor_broken.hpp.

◆ SignalHandler [3/4]

template<typename S >
template<typename T >
using diffeq::signal::SignalProcessor< S >::SignalHandler = std::function<void(const Signal<T>&)>

Definition at line 41 of file signal_processor_clean.hpp.

◆ SignalHandler [4/4]

template<typename S >
template<typename T >
using diffeq::signal::SignalProcessor< S >::SignalHandler = std::function<void(const Signal<T>&)>

Definition at line 54 of file signal_processor_simple.hpp.

◆ state_type [1/5]

template<typename S >
using diffeq::signal::SignalProcessor< S >::state_type = S

Definition at line 37 of file signal_processor.hpp.

◆ state_type [2/5]

template<typename S >
using diffeq::signal::SignalProcessor< S >::state_type = S

Definition at line 49 of file signal_processor_broken.hpp.

◆ state_type [3/5]

template<typename S >
using diffeq::signal::SignalProcessor< S >::state_type = S

Definition at line 37 of file signal_processor_clean.hpp.

◆ state_type [4/5]

template<typename S >
using diffeq::signal::SignalProcessor< S >::state_type = S

Definition at line 55 of file signal_processor_old.hpp.

◆ state_type [5/5]

template<typename S >
using diffeq::signal::SignalProcessor< S >::state_type = S

Definition at line 49 of file signal_processor_simple.hpp.

◆ time_type [1/3]

template<typename S >
using diffeq::signal::SignalProcessor< S >::time_type = typename S::value_type

Definition at line 50 of file signal_processor_broken.hpp.

◆ time_type [2/3]

template<typename S >
using diffeq::signal::SignalProcessor< S >::time_type = T

Definition at line 56 of file signal_processor_old.hpp.

◆ time_type [3/3]

template<typename S >
using diffeq::signal::SignalProcessor< S >::time_type = typename S::value_type

Definition at line 50 of file signal_processor_simple.hpp.

◆ value_type

template<typename S >
using diffeq::signal::SignalProcessor< S >::value_type = typename S::value_type

Definition at line 57 of file signal_processor_old.hpp.

Constructor & Destructor Documentation

◆ SignalProcessor()

template<typename S >
diffeq::signal::SignalProcessor< S >::SignalProcessor ( std::shared_ptr< integrator_type >  integrator)
inlineexplicit

Definition at line 65 of file signal_processor_old.hpp.

Member Function Documentation

◆ emit_signal() [1/4]

template<typename S >
template<typename T >
void diffeq::signal::SignalProcessor< S >::emit_signal ( std::string_view  signal_type,
T &&  data,
double  priority = 1.0 
)
inline

Emit a signal with arbitrary data.

Definition at line 54 of file signal_processor.hpp.

◆ emit_signal() [2/4]

template<typename S >
template<typename T >
void diffeq::signal::SignalProcessor< S >::emit_signal ( std::string_view  signal_type,
T &&  data,
double  priority = 1.0 
)
inline

Emit a signal with arbitrary data.

Definition at line 70 of file signal_processor_broken.hpp.

◆ emit_signal() [3/4]

template<typename S >
template<typename T >
void diffeq::signal::SignalProcessor< S >::emit_signal ( std::string_view  signal_type,
T &&  data,
double  priority = 1.0 
)
inline

Emit a signal with arbitrary data.

Definition at line 54 of file signal_processor_clean.hpp.

◆ emit_signal() [4/4]

template<typename S >
template<typename T >
void diffeq::signal::SignalProcessor< S >::emit_signal ( std::string_view  signal_type,
T &&  data,
double  priority = 1.0 
)
inline

Emit a signal with arbitrary data.

Definition at line 70 of file signal_processor_simple.hpp.

◆ get_control_targets()

template<typename S >
const std::vector< double > & diffeq::signal::SignalProcessor< S >::get_control_targets ( ) const
inline

Get current control targets.

Definition at line 106 of file signal_processor_old.hpp.

◆ get_market_data()

template<typename S >
double diffeq::signal::SignalProcessor< S >::get_market_data ( const std::string &  symbol) const
inline

Get market data for symbol.

Definition at line 113 of file signal_processor_old.hpp.

◆ get_parameter()

template<typename S >
double diffeq::signal::SignalProcessor< S >::get_parameter ( const std::string &  name) const
inline

Get parameter value.

Definition at line 133 of file signal_processor_old.hpp.

◆ process_control_signal()

template<typename S >
void diffeq::signal::SignalProcessor< S >::process_control_signal ( const control_signal signal)
inline

Process control signal (for robotics)

Definition at line 84 of file signal_processor_old.hpp.

◆ process_market_signal()

template<typename S >
void diffeq::signal::SignalProcessor< S >::process_market_signal ( const market_signal signal)
inline

Process market signal (for finance)

Definition at line 95 of file signal_processor_old.hpp.

◆ process_parameter_signal()

template<typename S >
void diffeq::signal::SignalProcessor< S >::process_parameter_signal ( const parameter_signal signal)
inline

Process parameter update signal.

Definition at line 75 of file signal_processor_old.hpp.

Here is the call graph for this function:

◆ process_signal()

template<typename S >
template<typename SignalType >
void diffeq::signal::SignalProcessor< S >::process_signal ( const SignalType &  signal)
inline

Process generic signal.

Definition at line 158 of file signal_processor_old.hpp.

◆ register_handler() [1/5]

template<typename S >
template<typename SignalType , SignalHandler< SignalType > Handler>
void diffeq::signal::SignalProcessor< S >::register_handler ( const std::string &  signal_type,
Handler &&  handler 
)
inline

Register custom signal handler.

Definition at line 142 of file signal_processor_old.hpp.

◆ register_handler() [2/5]

template<typename S >
template<typename T , typename Handler >
void diffeq::signal::SignalProcessor< S >::register_handler ( std::string_view  signal_type,
Handler &&  handler 
)
inline

Register a typed signal handler.

Definition at line 63 of file signal_processor.hpp.

◆ register_handler() [3/5]

template<typename S >
template<typename T , typename Handler >
void diffeq::signal::SignalProcessor< S >::register_handler ( std::string_view  signal_type,
Handler &&  handler 
)
inline

Register a typed signal handler.

Definition at line 79 of file signal_processor_broken.hpp.

◆ register_handler() [4/5]

template<typename S >
template<typename T , typename Handler >
void diffeq::signal::SignalProcessor< S >::register_handler ( std::string_view  signal_type,
Handler &&  handler 
)
inline

Register a typed signal handler.

Definition at line 63 of file signal_processor_clean.hpp.

◆ register_handler() [5/5]

template<typename S >
template<typename T , typename Handler >
void diffeq::signal::SignalProcessor< S >::register_handler ( std::string_view  signal_type,
Handler &&  handler 
)
inline

Register a typed signal handler.

Definition at line 79 of file signal_processor_simple.hpp.

◆ update_parameter() [1/3]

template<typename S >
void diffeq::signal::SignalProcessor< S >::update_parameter ( const std::string &  name,
double  value 
)
inline

Update integration parameter.

Definition at line 121 of file signal_processor_old.hpp.

◆ update_parameter() [2/3]

template<typename S >
void diffeq::signal::SignalProcessor< S >::update_parameter ( const std::string &  param_name,
double  value 
)
inline

Update integration parameters.

Definition at line 97 of file signal_processor_broken.hpp.

Here is the caller graph for this function:

◆ update_parameter() [3/3]

template<typename S >
void diffeq::signal::SignalProcessor< S >::update_parameter ( const std::string &  param_name,
double  value 
)
inline

Update integration parameters.

Definition at line 97 of file signal_processor_simple.hpp.


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