2024-04-21 01:47:24 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <functional>
|
|
|
|
|
#include <any>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
|
|
#include "Listener.hpp"
|
|
|
|
|
|
|
|
|
|
class CSignal {
|
|
|
|
|
public:
|
2024-04-21 16:28:50 +01:00
|
|
|
void emit(std::any data = {});
|
2024-04-21 01:47:24 +01:00
|
|
|
|
|
|
|
|
//
|
|
|
|
|
[[nodiscard("Listener is unregistered when the ptr is lost")]] CHyprSignalListener registerListener(std::function<void(std::any)> handler);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
std::vector<std::weak_ptr<CSignalListener>> m_vListeners;
|
|
|
|
|
};
|