Hedgehog  3.1.0
A library to generate hybrid pipeline workflow systems
Loading...
Searching...
No Matches
hh::core::implementor::ImplementorReceiver< Input > Class Template Referenceabstract

Implementor for the ReceiverAbstraction. More...

#include "implementor_receiver.h"

Inheritance diagram for hh::core::implementor::ImplementorReceiver< Input >:
Inheritance graph
Collaboration diagram for hh::core::implementor::ImplementorReceiver< Input >:
Collaboration graph

Public Member Functions

 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.
 

Protected Attributes

std::unique_ptr< std::set< abstraction::ReceiverAbstraction< Input > * > > abstractReceivers_ = nullptr
 Set of linked ReceiverAbstraction.
 

Detailed Description

template<class Input>
class hh::core::implementor::ImplementorReceiver< Input >

Implementor for the ReceiverAbstraction.

Template Parameters
InputData type received

Definition at line 43 of file implementor_receiver.h.

Constructor & Destructor Documentation

◆ ImplementorReceiver()

template<class Input >
hh::core::implementor::ImplementorReceiver< Input >::ImplementorReceiver ( )
inlineexplicit

Default constructor.

Definition at line 50 of file implementor_receiver.h.

◆ ~ImplementorReceiver()

template<class Input >
virtual hh::core::implementor::ImplementorReceiver< Input >::~ImplementorReceiver ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ addSender()

template<class Input >
virtual void hh::core::implementor::ImplementorReceiver< Input >::addSender ( abstraction::SenderAbstraction< Input > *  sender)
pure virtual

Add a SenderAbstraction.

Parameters
senderSenderAbstraction to add

Implemented in hh::core::implementor::GraphReceiver< Input >, and hh::core::implementor::QueueReceiver< Input >.

◆ connectedSenders()

template<class Input >
virtual std::set< abstraction::SenderAbstraction< Input > * > const & hh::core::implementor::ImplementorReceiver< Input >::connectedSenders ( ) const
pure virtual

Accessor to the connected senders.

Returns
A set of connected sender

Implemented in hh::core::implementor::GraphReceiver< Input >, hh::core::implementor::QueueReceiver< Input >, and hh::core::implementor::QueueReceiver< Inputs >.

◆ empty()

template<class Input >
virtual bool hh::core::implementor::ImplementorReceiver< Input >::empty ( ) const
pure virtual

Test if the receiver is empty or not.

Returns
True if the receiver is empty, else false

Implemented in hh::core::implementor::GraphReceiver< Input >, hh::core::implementor::QueueReceiver< Input >, and hh::core::implementor::QueueReceiver< Inputs >.

◆ getInputData()

template<class Input >
virtual std::shared_ptr< Input > hh::core::implementor::ImplementorReceiver< Input >::getInputData ( )
pure virtual

◆ initialize()

template<class Input >
virtual void hh::core::implementor::ImplementorReceiver< Input >::initialize ( abstraction::ReceiverAbstraction< Input > *  receiverAbstraction)
inlinevirtual

Initialize the implementor Receiver by setting the corresponding abstraction.

Parameters
receiverAbstractionReceiver abstraction to set

Reimplemented in hh::core::implementor::GraphReceiver< Input >.

Definition at line 62 of file implementor_receiver.h.

◆ maxNumberElementsReceived()

template<class Input >
virtual size_t hh::core::implementor::ImplementorReceiver< Input >::maxNumberElementsReceived ( ) const
pure virtual

Accessor to the maximum number of data waiting to be processed in the queue during the whole execution.

Returns
Maximum number of data waiting to be processed in the queue during the whole execution

Implemented in hh::core::implementor::GraphReceiver< Input >, hh::core::implementor::QueueReceiver< Input >, and hh::core::implementor::QueueReceiver< Inputs >.

◆ numberElementsReceived()

template<class Input >
virtual size_t hh::core::implementor::ImplementorReceiver< Input >::numberElementsReceived ( ) const
pure virtual

Accessor to number of data waiting to be processed in the queue.

Returns
Number of data waiting to be processed in the queue

Implemented in hh::core::implementor::GraphReceiver< Input >, hh::core::implementor::QueueReceiver< Input >, and hh::core::implementor::QueueReceiver< Inputs >.

◆ receive()

template<class Input >
virtual void hh::core::implementor::ImplementorReceiver< Input >::receive ( std::shared_ptr< Input >  data)
pure virtual

Receive data interface.

Parameters
dataData received by the core

Implemented in hh::core::implementor::QueueReceiver< Input >, and hh::core::implementor::GraphReceiver< Input >.

◆ receivers()

template<class Input >
std::set< abstraction::ReceiverAbstraction< Input > * > & hh::core::implementor::ImplementorReceiver< Input >::receivers ( )
inline

Accessor to the linked ReceiverAbstraction.

Returns
Set of ReceiverAbstraction

Definition at line 58 of file implementor_receiver.h.

◆ removeSender()

template<class Input >
virtual void hh::core::implementor::ImplementorReceiver< Input >::removeSender ( abstraction::SenderAbstraction< Input > *  sender)
pure virtual

Remove a SenderAbstraction.

Parameters
senderSenderAbstraction to remove

Implemented in hh::core::implementor::GraphReceiver< Input >, and hh::core::implementor::QueueReceiver< Input >.

Member Data Documentation

◆ abstractReceivers_

template<class Input >
std::unique_ptr<std::set<abstraction::ReceiverAbstraction<Input> *> > hh::core::implementor::ImplementorReceiver< Input >::abstractReceivers_ = nullptr
protected

Set of linked ReceiverAbstraction.

Definition at line 46 of file implementor_receiver.h.