Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::implementor::DefaultNotifier Class Reference

Default concrete implementation of notifier interface. More...

#include "default_notifier.h"

Inheritance diagram for hh::core::implementor::DefaultNotifier:
Inheritance graph
Collaboration diagram for hh::core::implementor::DefaultNotifier:
Collaboration graph

Public Member Functions

 DefaultNotifier ()
 Default constructor.
 
 ~DefaultNotifier () override=default
 Default destructor.
 
void addSlot (abstraction::SlotAbstraction *const slot) override
 Add a slot to transmit messages to.
 
void removeSlot (abstraction::SlotAbstraction *const slot) override
 Remove a slot to transmit messages to.
 
std::set< abstraction::SlotAbstraction * > const & connectedSlots () const override
 Accessor to the connected slots.
 
void notify () override
 Notify method, calls wakeUp on all connected slots.
 
void notifyAllTerminated () override
 Remove the notifier connection from all connected slots, and calls wakeUp on all.
 
- Public Member Functions inherited from hh::core::implementor::ImplementorNotifier
 ImplementorNotifier ()
 Default constructor.
 
virtual ~ImplementorNotifier ()=default
 Default destructor.
 
std::set< abstraction::NotifierAbstraction * > & notifiers ()
 Accessor to the linked NotifierAbstraction.
 
virtual void initialize (abstraction::NotifierAbstraction *notifierAbstraction)
 Initialize the implementor Notifier by setting the corresponding abstraction.
 
virtual std::set< abstraction::SlotAbstraction * > const & connectedSlots () const =0
 Accessor to the connected slots.
 
virtual void addSlot (abstraction::SlotAbstraction *slot)=0
 Add a slot to the connected slots.
 
virtual void removeSlot (abstraction::SlotAbstraction *slot)=0
 Remove a slot to the connected slots.
 
virtual void notify ()=0
 Notify the connected slots to wake up.
 
virtual void notifyAllTerminated ()=0
 Notify the connected slots that this notifier is terminated.
 

Private Attributes

std::unique_ptr< std::set< abstraction::SlotAbstraction * > > const slots_ = nullptr
 Slot getting the message.
 

Additional Inherited Members

- Protected Attributes inherited from hh::core::implementor::ImplementorNotifier
std::unique_ptr< std::set< abstraction::NotifierAbstraction * > > abstractNotifiers_ = nullptr
 Set of linked NotifierAbstraction.
 

Detailed Description

Default concrete implementation of notifier interface.

Definition at line 37 of file default_notifier.h.

Constructor & Destructor Documentation

◆ DefaultNotifier()

hh::core::implementor::DefaultNotifier::DefaultNotifier ( )
inlineexplicit

Default constructor.

Definition at line 44 of file default_notifier.h.

◆ ~DefaultNotifier()

hh::core::implementor::DefaultNotifier::~DefaultNotifier ( )
overridedefault

Default destructor.

Member Function Documentation

◆ addSlot()

void hh::core::implementor::DefaultNotifier::addSlot ( abstraction::SlotAbstraction *const  slot)
inlineoverridevirtual

Add a slot to transmit messages to.

Parameters
slotSlot to add

Implements hh::core::implementor::ImplementorNotifier.

Definition at line 51 of file default_notifier.h.

◆ connectedSlots()

std::set< abstraction::SlotAbstraction * > const & hh::core::implementor::DefaultNotifier::connectedSlots ( ) const
inlineoverridevirtual

Accessor to the connected slots.

Returns
Connected slots

Implements hh::core::implementor::ImplementorNotifier.

Definition at line 59 of file default_notifier.h.

◆ notify()

void hh::core::implementor::DefaultNotifier::notify ( )
inlineoverridevirtual

Notify method, calls wakeUp on all connected slots.

Implements hh::core::implementor::ImplementorNotifier.

Definition at line 62 of file default_notifier.h.

◆ notifyAllTerminated()

void hh::core::implementor::DefaultNotifier::notifyAllTerminated ( )
inlineoverridevirtual

Remove the notifier connection from all connected slots, and calls wakeUp on all.

Implements hh::core::implementor::ImplementorNotifier.

Definition at line 67 of file default_notifier.h.

◆ removeSlot()

void hh::core::implementor::DefaultNotifier::removeSlot ( abstraction::SlotAbstraction *const  slot)
inlineoverridevirtual

Remove a slot to transmit messages to.

Parameters
slotSlot to remove

Implements hh::core::implementor::ImplementorNotifier.

Definition at line 55 of file default_notifier.h.

Member Data Documentation

◆ slots_

std::unique_ptr<std::set<abstraction::SlotAbstraction *> > const hh::core::implementor::DefaultNotifier::slots_ = nullptr
private

Slot getting the message.

Definition at line 40 of file default_notifier.h.