Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::implementor::MultiQueueReceivers< Inputs > Class Template Reference

Concrete implementation of the receiver core abstraction for multiple types using a std::queue. More...

#include "multi_queue_receivers.h"

Inheritance diagram for hh::core::implementor::MultiQueueReceivers< Inputs >:
Inheritance graph
Collaboration diagram for hh::core::implementor::MultiQueueReceivers< Inputs >:
Collaboration graph

Public Member Functions

 MultiQueueReceivers ()
 Constructor using an abstraction for callbacks.
 
virtual ~MultiQueueReceivers ()=default
 Default destructor.
 
- Public Member Functions inherited from hh::core::implementor::QueueReceiver< Inputs >
 QueueReceiver ()
 Default constructor.
 
virtual ~QueueReceiver ()=default
 Default destructor.
 
void receive (std::shared_ptr< Inputs > const data) final
 Receive a data and store it in the queue.
 
std::shared_ptr< Inputs > getInputData () override
 Get a data from the queue.
 
size_t numberElementsReceived () const override
 Accessor to the current size of the queue.
 
size_t maxNumberElementsReceived () const override
 Accessor to the maximum queue size.
 
bool empty () const override
 Test if the queue is empty.
 
std::set< abstraction::SenderAbstraction< Inputs > * > const & connectedSenders () const override
 Accessor to the set of connected senders.
 
void addSender (abstraction::SenderAbstraction< Inputs > *const sender) override
 Add a sender to the set of connected senders.
 
void removeSender (abstraction::SenderAbstraction< Inputs > *const sender) override
 Remove a sender to the set of connected senders.
 
- Public Member Functions inherited from hh::core::implementor::ImplementorReceiver< Input >
 ImplementorReceiver ()
 Default constructor.
 
virtual ~ImplementorReceiver ()=default
 Default destructor.
 
std::set< abstraction::ReceiverAbstraction< Input > * > & receivers ()
 Accessor to the linked ReceiverAbstraction.
 
virtual void initialize (abstraction::ReceiverAbstraction< Input > *receiverAbstraction)
 Initialize the implementor Receiver by setting the corresponding abstraction.
 
virtual std::set< abstraction::SenderAbstraction< Input > * > const & connectedSenders () const =0
 Accessor to the connected senders.
 
virtual void addSender (abstraction::SenderAbstraction< Input > *sender)=0
 Add a SenderAbstraction.
 
virtual void removeSender (abstraction::SenderAbstraction< Input > *sender)=0
 Remove a SenderAbstraction.
 
virtual void receive (std::shared_ptr< Input > data)=0
 Receive data interface.
 
virtual std::shared_ptr< Input > getInputData ()=0
 Accessor to a received data.
 
virtual size_t numberElementsReceived () const =0
 Accessor to number of data waiting to be processed in the queue.
 
virtual size_t maxNumberElementsReceived () const =0
 Accessor to the maximum number of data waiting to be processed in the queue during the whole execution.
 
virtual bool empty () const =0
 Test if the receiver is empty or not.
 

Additional Inherited Members

- Protected Attributes inherited from hh::core::implementor::ImplementorReceiver< Input >
std::unique_ptr< std::set< abstraction::ReceiverAbstraction< Input > * > > abstractReceivers_ = nullptr
 Set of linked ReceiverAbstraction.
 

Detailed Description

template<class ... Inputs>
class hh::core::implementor::MultiQueueReceivers< Inputs >

Concrete implementation of the receiver core abstraction for multiple types using a std::queue.

Template Parameters
InputsList of input types

Definition at line 18 of file multi_queue_receivers.h.

Constructor & Destructor Documentation

◆ MultiQueueReceivers()

template<class ... Inputs>
hh::core::implementor::MultiQueueReceivers< Inputs >::MultiQueueReceivers ( )
inlineexplicit

Constructor using an abstraction for callbacks.

Definition at line 21 of file multi_queue_receivers.h.

◆ ~MultiQueueReceivers()

template<class ... Inputs>
virtual hh::core::implementor::MultiQueueReceivers< Inputs >::~MultiQueueReceivers ( )
virtualdefault

Default destructor.