|
Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
|
Compile-time CRTP Application, Lock-Free Runtime, and Event Engine. More...
Files | |
| file | Application.hpp |
| CRTP static polymorphism application base class with auto-deduced event handlers. | |
| file | ApplicationContext.hpp |
| Type-erased context for application runtime introspection and lifecycle control. | |
| file | BackgroundService.hpp |
| Managed worker thread using C++20 std::jthread and std::stop_token. | |
| file | CallableTraits.hpp |
| Compile-time introspection traits for callable objects and event handlers. | |
| file | corium.hpp |
| Master umbrella header for the entire Corium runtime framework. | |
| file | EventBus.hpp |
| Multi-producer single-consumer lock-free event bus coordinator. | |
| file | EventQueue.hpp |
| Internal priority and bounded lock-free event queue adapter. | |
| file | EventRouter.hpp |
| Zero-heap topic-based multi-subscriber event routing and fan-out dispatcher. | |
| file | Events.hpp |
| Standard lifecycle events (QuitEvent, ErrorEvent, TimerEvent). | |
| file | EventSink.hpp |
| Non-allocating type-erased fat pointer handle for lock-free event posting. | |
| file | FastDelegate.hpp |
| Zero-allocating Small Buffer Optimized (SBO) static delegate dispatcher. | |
| file | MpscRingBuffer.hpp |
| Lock-free Multi-Producer Single-Consumer (MPSC) bounded ring buffer based on Dmitry Vyukov's algorithm. | |
| file | Panic.hpp |
| Zero-heap assertion and panic handling utilities. | |
| file | Reactor.hpp |
| Internal static event handler registry and compile-time dispatcher. | |
| file | Runtime.hpp |
| Deterministic single-consumer event loop coordinator and runner. | |
| file | RuntimeBuilder.hpp |
| Fluent compile-time builder for custom policy-configured runtimes. | |
| file | Service.hpp |
| Lightweight thread-safe background service interface. | |
| file | ServiceContext.hpp |
| Dependency injection context for background services. | |
| file | ServiceRegistry.hpp |
| Fixed-capacity static container for background worker services. | |
| file | VariantIndex.hpp |
| Compile-time type index resolution for std::variant alternative types. | |
Classes | |
| class | corium::Application< Derived, EventVariantOrBus, MaxServices > |
| Static CRTP base class for applications managed by Corium Runtime. Subclass Application<Derived> or Application<Derived, EventVariant, MaxServices> for zero-vtable compile-time static dispatch. All framework operations and handlers are protected for clean encapsulation within the derived application. More... | |
| class | corium::ApplicationContext< EventVariant > |
| Context object passed to Application providing event registration, sink access, quit requests, and timer scheduling. Completely encapsulates EventBus and Reactor internals. More... | |
| class | corium::BackgroundService< EventVariantType, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy > |
| Multi-threaded background worker service owning a dedicated std::jthread. Integrates incoming event queue with background worker execution and cooperative shutdown via std::stop_token. Zero heap allocations, zero vtables/RTTI. More... | |
| class | corium::BasicEventBus< EventVariantType, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, ProfilerPolicy > |
| Policy-configurable non-virtual event bus implementation. More... | |
| class | corium::BasicEventSink< EventVariant > |
| Non-virtual type-erased event sink handle (raw pointer + static function pointer). Zero dynamic heap allocations, zero vtables/RTTI. More... | |
| class | corium::BasicRuntime< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Corium Application Runtime managing MPSC event loops and static policy execution. Zero dynamic heap allocations, zero RTTI. More... | |
| struct | corium::BasicRuntimeBuilder< EventVariant, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy, TimerStoragePolicy, ProfilerPolicy > |
| Primary template implementation for fluent compile-time Runtime construction. More... | |
| class | corium::BasicServiceRegistry< MaxServices, EventVariant > |
| Non-allocating ServiceRegistry storing service handles in a fixed stack/static array. Zero heap allocations, zero vtables/RTTI. More... | |
| class | corium::EventRouter< EventVariant, MaxSubscribersPerTopic, MaxTopics > |
| Zero-heap static topic-based publish/subscribe router. Fans out events to multiple registered delegate subscribers per topic ID without dynamic memory allocation. More... | |
| class | corium::MpscRingBuffer< T, Capacity > |
| Lock-free Multiple-Producer, Single-Consumer (MPSC) RingBuffer. Implements Dmitry Vyukov's algorithm with zero heap allocations (uses std::array). Cache-line aligned (alignas(CORIUM_CACHE_LINE_SIZE)) to eliminate false sharing. More... | |
| struct | corium::RuntimeBuilder |
Fluent compile-time builder for configuring BasicRuntime. Usage: using MyRuntime = corium::RuntimeBuilder::WithEvents<MyEvents>::Build; More... | |
| class | corium::Service< EventVariantType, QueuePolicy, SignalPolicy, StoragePolicy, OverflowPolicy > |
| Non-allocating base class for synchronous or thread-agnostic services. Provides event producing (posting to main EventBus) and event consuming (receiving events into dedicated incoming bus). Does NOT own a thread. Zero heap allocations, zero vtables/RTTI. More... | |
Compile-time CRTP Application, Lock-Free Runtime, and Event Engine.
The core engine coordinates all event processing with zero heap allocations, zero virtual method tables, and zero RTTI.
Key components: