MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
EventSource.cpp
Go to the documentation of this file.
1#include "EventSource.hpp"
2
4
5namespace MayaFlux::Vruta {
6
7void EventSource::dispatch(const void* event)
8{
9 if (m_waiters.empty())
10 return;
11
12 auto waiters = m_waiters;
13 for (auto* waiter : waiters) {
14 if (std::ranges::find(m_waiters, waiter) != m_waiters.end())
15 waiter->try_resume(event);
16 }
17}
18
20{
21 m_waiters.push_back(awaiter);
22}
23
25{
26 auto it = std::ranges::find(m_waiters, awaiter);
27 if (it != m_waiters.end())
28 m_waiters.erase(it);
29}
30
31} // namespace MayaFlux::Vruta
Abstract base for all event-driven awaiters.
void dispatch(const void *event)
Iterates the waiter list, passing the type-erased signal to each.
std::vector< Kriya::EventAwaiter * > m_waiters
void register_waiter(Kriya::EventAwaiter *awaiter)
void unregister_waiter(Kriya::EventAwaiter *awaiter)