|
Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
|
Primary template implementation for fluent compile-time Runtime construction. More...
#include <RuntimeBuilder.hpp>
Inheritance diagram for corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >:
Collaboration diagram for corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >:Public Types | |
| using | Build = BasicRuntime< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Complete builder configuration and return BasicRuntime type. | |
| template<size_t Capacity> | |
| using | WithCapacity = BasicRuntimeBuilder< EventVariant, internal::rebind_queue_capacity_t< QueuePolicy, Capacity >, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom queue capacity for bounded MPSC queue (preserves existing event variant). | |
| template<typename NewClockPolicy > | |
| using | WithClockPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, FixedTimerStoragePolicy< TimerStoragePolicy::max_timers, NewClockPolicy >, ProfilerPolicy > |
| Specify custom ClockPolicy (time source strategy). | |
| template<typename NewEventVariant > | |
| using | WithEvents = BasicRuntimeBuilder< NewEventVariant, internal::rebind_queue_policy_t< QueuePolicy, NewEventVariant >, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom event variant list type (preserves existing queue capacity/policy). | |
| template<std::size_t BufferCapacity = 256> | |
| using | WithFlightRecorder = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, profiler::FlightRecorderProfiler< BufferCapacity, internal::queue_capacity_of_v< QueuePolicy > > > |
| Convenience helper: Configure FlightRecorder circular trace logger. The QueueCapacity of the internal timestamp ring buffer is automatically derived from the current QueuePolicy capacity, ensuring accurate per-event latency measurement. | |
| template<size_t NewInlineSize> | |
| using | WithInlineSize = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, FixedStoragePolicy< StoragePolicy::max_handlers_per_event, NewInlineSize >, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify inline storage size for FastDelegate (rebinds StoragePolicy). | |
| template<std::size_t BufferCapacity = 256> | |
| using | WithLatencyTracker = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, profiler::LatencyTracker< internal::queue_capacity_of_v< QueuePolicy > > > |
| Convenience helper: Configure real-time event latency statistics tracker. The QueueCapacity of the internal timestamp ring buffer is automatically derived from the current QueuePolicy capacity, ensuring accurate per-event latency measurement. | |
| template<size_t NewMaxHandlers> | |
| using | WithMaxHandlersPerEvent = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, FixedStoragePolicy< NewMaxHandlers, StoragePolicy::inline_storage_size >, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify maximum handlers per event type (rebinds StoragePolicy). | |
| template<size_t MaxTimers> | |
| using | WithMaxTimers = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, FixedTimerStoragePolicy< MaxTimers >, ProfilerPolicy > |
| Specify maximum number of concurrent active timers. | |
| template<typename NewOverflowPolicy > | |
| using | WithOverflowPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, NewOverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom OverflowPolicy. | |
| template<size_t HighCapacity = 256, size_t NormalCapacity = 1024> | |
| using | WithPriorityQueue = BasicRuntimeBuilder< EventVariant, PriorityMpscQueuePolicy< EventVariant, HighCapacity, NormalCapacity >, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Switch queue policy to PriorityMpscQueuePolicy with specified high and normal capacities. | |
| template<typename NewProfilerPolicy > | |
| using | WithProfiler = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, NewProfilerPolicy > |
| Specify custom ProfilerPolicy strategy. | |
| template<typename NewQueuePolicy > | |
| using | WithQueuePolicy = BasicRuntimeBuilder< EventVariant, NewQueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom QueuePolicy. | |
| template<typename NewSignalPolicy > | |
| using | WithSignalPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, NewSignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom SignalPolicy. | |
| template<typename NewStoragePolicy > | |
| using | WithStoragePolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, NewStoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Specify custom StoragePolicy. | |
| template<typename NewTimerStoragePolicy > | |
| using | WithTimerStoragePolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, NewTimerStoragePolicy, ProfilerPolicy > |
| Specify custom TimerStoragePolicy. | |
Primary template implementation for fluent compile-time Runtime construction.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::Build = BasicRuntime<EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy> |
Complete builder configuration and return BasicRuntime type.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithCapacity = BasicRuntimeBuilder< EventVariant, internal::rebind_queue_capacity_t<QueuePolicy, Capacity>, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom queue capacity for bounded MPSC queue (preserves existing event variant).
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithClockPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, FixedTimerStoragePolicy<TimerStoragePolicy::max_timers, NewClockPolicy>, ProfilerPolicy > |
Specify custom ClockPolicy (time source strategy).
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithEvents = BasicRuntimeBuilder< NewEventVariant, internal::rebind_queue_policy_t<QueuePolicy, NewEventVariant>, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom event variant list type (preserves existing queue capacity/policy).
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithFlightRecorder = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, profiler::FlightRecorderProfiler<BufferCapacity, internal::queue_capacity_of_v<QueuePolicy> > > |
Convenience helper: Configure FlightRecorder circular trace logger. The QueueCapacity of the internal timestamp ring buffer is automatically derived from the current QueuePolicy capacity, ensuring accurate per-event latency measurement.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithInlineSize = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, FixedStoragePolicy<StoragePolicy::max_handlers_per_event, NewInlineSize>, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify inline storage size for FastDelegate (rebinds StoragePolicy).
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithLatencyTracker = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, profiler::LatencyTracker<internal::queue_capacity_of_v<QueuePolicy> > > |
Convenience helper: Configure real-time event latency statistics tracker. The QueueCapacity of the internal timestamp ring buffer is automatically derived from the current QueuePolicy capacity, ensuring accurate per-event latency measurement.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithMaxHandlersPerEvent = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, FixedStoragePolicy<NewMaxHandlers, StoragePolicy::inline_storage_size>, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify maximum handlers per event type (rebinds StoragePolicy).
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithMaxTimers = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, FixedTimerStoragePolicy<MaxTimers>, ProfilerPolicy > |
Specify maximum number of concurrent active timers.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithOverflowPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, NewOverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom OverflowPolicy.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithPriorityQueue = BasicRuntimeBuilder< EventVariant, PriorityMpscQueuePolicy<EventVariant, HighCapacity, NormalCapacity>, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Switch queue policy to PriorityMpscQueuePolicy with specified high and normal capacities.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithProfiler = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, NewProfilerPolicy > |
Specify custom ProfilerPolicy strategy.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithQueuePolicy = BasicRuntimeBuilder< EventVariant, NewQueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom QueuePolicy.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithSignalPolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, NewSignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom SignalPolicy.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithStoragePolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, NewStoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
Specify custom StoragePolicy.
| using corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy >::WithTimerStoragePolicy = BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, NewTimerStoragePolicy, ProfilerPolicy > |
Specify custom TimerStoragePolicy.