Improved events API

This commit is contained in:
WerWolv
2021-01-21 10:53:12 +01:00
parent f0ab13ebc3
commit a641f27b7e
18 changed files with 73 additions and 64 deletions

View File

@@ -4,13 +4,16 @@
namespace hex {
void EventManager::post(Events eventType, const void *userData) {
std::vector<std::any> EventManager::post(Events eventType, const std::any &userData) {
std::vector<std::any> results;
for (auto &handler : SharedData::eventHandlers)
if (eventType == handler.eventType)
handler.callback(userData);
results.push_back(handler.callback(userData));
return results;
}
void EventManager::subscribe(Events eventType, void *owner, std::function<void(const void*)> callback) {
void EventManager::subscribe(Events eventType, void *owner, std::function<std::any(const std::any&)> callback) {
for (auto &handler : SharedData::eventHandlers)
if (eventType == handler.eventType && owner == handler.owner)
return;