LeviLamina
Loading...
Searching...
No Matches
Emitter.h
1#pragma once
2
3#include "ll/api/event/EmitterBase.h"
4#include "ll/api/event/EventBus.h"
5
6namespace ll::event {
7template <auto F, std::derived_from<Event>... Ts>
8class Emitter : public EmitterBase {
9 static_assert((std::is_final_v<Ts> && ...), "Only final classes can be emitted");
10
11 static inline bool reg = [] {
12 auto& ins = EventBus::getInstance();
13 (ins.setEventEmitter<Ts>(F), ...);
14 return true;
15 }();
16
17protected:
18 Emitter() = default;
19 ~Emitter() override = default;
20};
21} // namespace ll::event
Definition EmitterBase.h:4
Definition Emitter.h:8