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.