MayaFlux 0.4.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* w : waiters)
14 w->try_resume(event);
15}
16
18{
19 m_waiters.push_back(awaiter);
20}
21
23{
24 auto it = std::ranges::find(m_waiters, awaiter);
25 if (it != m_waiters.end())
26 m_waiters.erase(it);
27}
28
29} // 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)