|
| SignalDecorator (std::unique_ptr< AbstractIntegrator< S > > integrator, SignalConfig config={}) |
| Construct signal decorator.
|
|
void | step (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt) override |
| Override step to add signal processing.
|
|
void | integrate (typename IntegratorDecorator< S >::state_type &state, typename IntegratorDecorator< S >::time_type dt, typename IntegratorDecorator< S >::time_type end_time) override |
| Override integrate to handle signal processing during integration.
|
|
void | register_signal_handler (std::function< void(S &, typename IntegratorDecorator< S >::time_type)> handler, const std::string &signal_id="", SignalPriority priority=SignalPriority::NORMAL) |
| Register a signal handler function.
|
|
void | register_signal_handlers (const std::vector< std::function< void(S &, typename IntegratorDecorator< S >::time_type)> > &handlers) |
| Register multiple signal handlers at once.
|
|
void | clear_signal_handlers () |
| Clear all signal handlers.
|
|
size_t | get_signal_handler_count () const |
| Get number of registered signal handlers.
|
|
void | process_signals_now (S &state, typename IntegratorDecorator< S >::time_type time) |
| Force immediate signal processing.
|
|
const SignalStats & | get_statistics () const |
| Get signal processing statistics.
|
|
void | reset_statistics () |
| Reset signal processing statistics.
|
|
bool | is_processing_active () const |
| Check if signal processing is currently active.
|
|
SignalConfig & | config () |
| Access and modify signal configuration.
|
|
const SignalConfig & | config () const |
|
void | update_config (SignalConfig new_config) |
| Update signal configuration with validation.
|
|
| IntegratorDecorator (std::unique_ptr< base_type > integrator) |
| Construct decorator wrapping another integrator.
|
|
virtual | ~IntegratorDecorator ()=default |
| Virtual destructor for proper cleanup.
|
|
void | step (state_type &state, time_type dt) override |
|
void | integrate (state_type &state, time_type dt, time_type end_time) override |
|
time_type | current_time () const override |
|
void | set_time (time_type t) override |
|
void | set_system (system_function sys) override |
|
base_type & | wrapped () |
| Access to wrapped integrator for advanced use.
|
|
const base_type & | wrapped () const |
|
bool | has_wrapped_integrator () const |
| Check if wrapped integrator exists.
|
|
| AbstractIntegrator (system_function sys) |
|
time_type | current_time () const |
|
void | set_time (time_type t) |
|
void | set_system (system_function sys) |
|
template<
system_state S>
class diffeq::core::composable::SignalDecorator< S >
Signal decorator - adds signal processing to any integrator.
This decorator provides comprehensive signal processing with the following features:
- Multiple processing modes (sync, async, batch)
- Signal priority handling
- Real-time signal buffering and processing
- Detailed statistics and performance monitoring
Key Design Principles:
- Single Responsibility: ONLY handles signal processing
- No Dependencies: Works with any integrator type
- Real-time: Minimal latency signal handling
- Thread-safe: Safe concurrent signal registration and processing
Definition at line 128 of file signal_decorator.hpp.