21#ifndef HEDGEHOG_IMPLEMENTOR_SLOT_H
22#define HEDGEHOG_IMPLEMENTOR_SLOT_H
26#include "../../abstractions/base/node/node_abstraction.h"
33namespace implementor {
38 std::unique_ptr<std::set<abstraction::SlotAbstraction *>>
44 abstractSlots_(std::make_unique<std::set<abstraction::SlotAbstraction *>>()) {}
61 [[nodiscard]]
virtual std::set<abstraction::NotifierAbstraction *>
const &
connectedNotifiers()
const = 0;
Core abstraction to notify slots.
Core's abstraction to receive a signal.
Implementor for the SlotAbstraction.
virtual void addNotifier(abstraction::NotifierAbstraction *notifier)=0
Add a notifier to the set of NotifierAbstraction.
virtual ~ImplementorSlot()=default
Default destructor.
ImplementorSlot()
Default constructor.
std::set< abstraction::SlotAbstraction * > & slots()
Accessor to the linked SlotAbstraction.
virtual void removeNotifier(abstraction::NotifierAbstraction *notifier)=0
Remove notifier to the set of NotifierAbstraction.
virtual bool hasNotifierConnected() const =0
Test if there is any notifiers connected.
std::unique_ptr< std::set< abstraction::SlotAbstraction * > > abstractSlots_
Set of linked SlotAbstraction.
virtual void initialize(abstraction::SlotAbstraction *slotAbstraction)
Initialize the implementor Slot by setting the corresponding abstraction.
virtual std::set< abstraction::NotifierAbstraction * > const & connectedNotifiers() const =0
Accessor to the connected notifiers.