Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
Corium Core Engine

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...
 

Detailed Description

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: