21 template <
typename QueuePolicy,
typename EventVariant>
34 template <
typename QueuePolicy,
typename EventVariant>
37 typename QueuePolicy::EventType dummy;
39 auto res = queue.tryPush(std::forward<EventVariant>(event), priority);
47 template <
typename QueuePolicy,
typename EventVariant>
53#if defined(CORIUM_PANIC_ON_OVERFLOW)
56 assert(
false &&
"Corium Queue Overflow: Queue capacity exceeded!");
65 template <
typename QueuePolicy,
typename EventVariant>
71 _droppedCount.fetch_add(1, std::memory_order_relaxed);
78 return _droppedCount.load(std::memory_order_relaxed);
84 _droppedCount.store(0, std::memory_order_relaxed);
88 std::atomic<uint64_t> _droppedCount{0};
Bounded and multi-tier priority MPSC queueing policies.
Overflow Policy: Audit and count dropped events via atomic counter.
Definition OverflowPolicies.hpp:63
void resetOverflowCount() noexcept
Reset total dropped event counter to 0.
Definition OverflowPolicies.hpp:82
uint64_t overflowCount() const noexcept
Get total number of dropped events.
Definition OverflowPolicies.hpp:76
bool handleOverflow(QueuePolicy &queue, EventVariant &&event, EventPriority priority=EventPriority::Normal)
Definition OverflowPolicies.hpp:66
Definition Application.hpp:16
EventPriority
Event priority levels for multi-priority queue policies.
Definition QueuePolicies.hpp:32
Default Overflow Policy: Silently drop incoming new event when queue is full. Zero overhead.
Definition OverflowPolicies.hpp:20
bool handleOverflow(QueuePolicy &queue, EventVariant &&event, EventPriority priority=EventPriority::Normal)
Definition OverflowPolicies.hpp:22
Overflow Policy: Evict oldest event in queue to make room for the new event. Ideal for high-frequency...
Definition OverflowPolicies.hpp:33
bool handleOverflow(QueuePolicy &queue, EventVariant &&event, EventPriority priority=EventPriority::Normal)
Definition OverflowPolicies.hpp:35
Overflow Policy: Trigger assertion / panic when queue fills up. Essential for mission-critical system...
Definition OverflowPolicies.hpp:46
bool handleOverflow(QueuePolicy &queue, EventVariant &&event, EventPriority priority=EventPriority::Normal)
Definition OverflowPolicies.hpp:48