3#include "spark/patterns/details/Connection.h"
10namespace spark::patterns
16 template <
typename... Args>
23 Signal(
const Signal& signal) =
delete;
24 Signal(Signal&& signal)
noexcept;
25 Signal& operator=(
const Signal& signal) =
delete;
26 Signal& operator=(Signal&& signal)
noexcept;
33 std::size_t
connect(Slot<Args...>* slot);
40 std::size_t
connect(Slot<Args...>& slot);
47 std::size_t
connect(Slot<Args...>&& slot);
54 std::size_t
connect(
const std::function<
void(Args...)>& callback);
61 std::size_t
connect(std::function<
void(Args...)>&& callback);
91 [[nodiscard]]
bool isConnected(std::size_t key)
const;
103 [[nodiscard]] std::vector<
const Slot<Args...>*>
connectedSlots()
const;
110 template <
typename... FnArgs>
111 void emit(FnArgs&&... args)
const;
126 std::size_t
connect(Slot<Args...>* slot,
bool managed);
132 void move(Signal* signal);
135 std::map<std::size_t, details::Connection<Args...>> m_connections;
136 std::size_t m_sequence = 0;
140#include "spark/patterns/impl/Signal.h"
void disconnect(std::size_t key)
Disconnects a slot from the signal.
Definition Signal.h:81
std::vector< std::size_t > connectedKeys() const
Gets all the keys of the connected slots.
Definition Signal.h:120
bool isConnected(std::size_t key) const
Finds if a slot is connected to the signal.
Definition Signal.h:113
std::size_t connect(Slot< Args... > *slot)
Connects a slot to the signal.
Definition Signal.h:51
void clear()
Disconnects all connected slots from the signal.
Definition Signal.h:105
std::vector< const Slot< Args... > * > connectedSlots() const
Gets all the connected slots.
Definition Signal.h:130
void emit(FnArgs &&... args) const
Emits the signal to all connected slots.
Definition Signal.h:140
void operator()(Args &&... args) const
Emits the signal to all connected slots. Same as emit.
Definition Signal.h:45