21#ifndef HEDGEHOG_IMPLEMENTOR_NOTIFIER_H 
   22#define HEDGEHOG_IMPLEMENTOR_NOTIFIER_H 
   33namespace abstraction {
 
   37namespace implementor {
 
   41  std::unique_ptr<std::set<abstraction::NotifierAbstraction *>>
 
   47      : 
abstractNotifiers_(std::make_unique<std::set<abstraction::NotifierAbstraction *>>()) {}
 
   64  [[nodiscard]] 
virtual std::set<abstraction::SlotAbstraction *> 
const &
connectedSlots() 
const = 0;
 
Core abstraction to notify slots.
Core's abstraction to receive a signal.
Implementor for the NotifierAbstraction.
virtual void notifyAllTerminated()=0
Notify the connected slots that this notifier is terminated.
virtual void addSlot(abstraction::SlotAbstraction *slot)=0
Add a slot to the connected slots.
virtual void initialize(abstraction::NotifierAbstraction *notifierAbstraction)
Initialize the implementor Notifier by setting the corresponding abstraction.
std::set< abstraction::NotifierAbstraction * > & notifiers()
Accessor to the linked NotifierAbstraction.
virtual ~ImplementorNotifier()=default
Default destructor.
ImplementorNotifier()
Default constructor.
virtual void notify()=0
Notify the connected slots to wake up.
virtual std::set< abstraction::SlotAbstraction * > const & connectedSlots() const =0
Accessor to the connected slots.
std::unique_ptr< std::set< abstraction::NotifierAbstraction * > > abstractNotifiers_
Set of linked NotifierAbstraction.
virtual void removeSlot(abstraction::SlotAbstraction *slot)=0
Remove a slot to the connected slots.