20#ifndef HEDGEHOG_GRAPH_NOTIFIER_H
21#define HEDGEHOG_GRAPH_NOTIFIER_H
28namespace implementor {
48 notifier->addSlot(slot);
61 [[nodiscard]] std::set<abstraction::SlotAbstraction *>
const &
connectedSlots()
const override {
62 throw std::runtime_error(
"A graph has no connected connectedSlots by itself.");
67 void notify()
override {
throw std::runtime_error(
"A graph has no slot to notify."); }
Core abstraction to notify slots.
Core's abstraction to receive a signal.
Default concrete implementation of the notifier abstraction for the graph core.
void removeSlot(abstraction::SlotAbstraction *slot) override
Remove slot to the graph, add slot to all output nodes recursively.
void addSlot(abstraction::SlotAbstraction *slot) override
Add slot to the graph, add slot to all output nodes recursively.
void initialize(abstraction::NotifierAbstraction *notifierAbstraction) override
Redefine the implementor to do nothing, the graph do nothing by itself.
GraphNotifier()=default
Default constructor.
~GraphNotifier() override=default
Default destructor.
void notify() override
Do not use, a graph does not notify.
void notifyAllTerminated() override
Do not use, a graph does not notify.
std::set< abstraction::SlotAbstraction * > const & connectedSlots() const override
Do not use, a graph does not have slots by itself.
Implementor for the NotifierAbstraction.
std::unique_ptr< std::set< abstraction::NotifierAbstraction * > > abstractNotifiers_
Set of linked NotifierAbstraction.