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
3
#include "
MayaFlux/Kriya/Awaiters/EventAwaiter.hpp
"
4
5
namespace
MayaFlux::Vruta
{
6
7
void
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
19
void
EventSource::register_waiter
(
Kriya::EventAwaiter
* awaiter)
20
{
21
m_waiters
.push_back(awaiter);
22
}
23
24
void
EventSource::unregister_waiter
(
Kriya::EventAwaiter
* awaiter)
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
EventAwaiter.hpp
EventSource.hpp
MayaFlux::Kriya::EventAwaiter
Abstract base for all event-driven awaiters.
Definition
EventAwaiter.hpp:24
MayaFlux::Vruta::EventSource::dispatch
void dispatch(const void *event)
Iterates the waiter list, passing the type-erased signal to each.
Definition
EventSource.cpp:7
MayaFlux::Vruta::EventSource::m_waiters
std::vector< Kriya::EventAwaiter * > m_waiters
Definition
EventSource.hpp:63
MayaFlux::Vruta::EventSource::register_waiter
void register_waiter(Kriya::EventAwaiter *awaiter)
Definition
EventSource.cpp:19
MayaFlux::Vruta::EventSource::unregister_waiter
void unregister_waiter(Kriya::EventAwaiter *awaiter)
Definition
EventSource.cpp:24
MayaFlux::Vruta
Definition
Chronie.hpp:18
src
MayaFlux
Vruta
EventSource.cpp
Generated by
1.9.8