19#ifndef HEDGEHOG_GRAPH_SLOT_H
20#define HEDGEHOG_GRAPH_SLOT_H
24#include "../../implementor/implementor_slot.h"
25#include "../../../abstractions/base/input_output/notifier_abstraction.h"
31namespace implementor {
50 [[nodiscard]] std::set<abstraction::NotifierAbstraction *>
const &
connectedNotifiers()
const override {
51 throw std::runtime_error(
"A graph has no connected connectedNotifiers by itself");
58 throw std::runtime_error(
"A graph has no connected connectedNotifiers by itself");
70 for (
auto slot : *
abstractSlots_) { slot->removeNotifier(notifier); }
Core abstraction to notify slots.
Core's abstraction to receive a signal.
Default concrete implementation of the slot abstraction for the graph core.
~GraphSlot() override=default
Default destructor.
void addNotifier(abstraction::NotifierAbstraction *notifier) override
Add a notifier to all input nodes.
std::set< abstraction::NotifierAbstraction * > const & connectedNotifiers() const override
Do nothing, throw an error.
GraphSlot()=default
Default constructor.
void initialize(abstraction::SlotAbstraction *slotAbstraction) override
Redefine the implementor to do nothing, the graph do nothing by itself.
void removeNotifier(abstraction::NotifierAbstraction *notifier) override
Remove a notifier to all input nodes.
bool hasNotifierConnected() const override
Do nothing, throw an error.
Implementor for the SlotAbstraction.
std::unique_ptr< std::set< abstraction::SlotAbstraction * > > abstractSlots_
Set of linked SlotAbstraction.