iceoryx_doc  1.0.1
Public Types | Public Member Functions | List of all members
iox::popo::SubscriberPortMultiProducer Class Reference

The SubscriberPortMultiProducer is the implementation of the SubscriberPortRouDi for a setup where subscribers can have multiple matching publishers. I.e. a n:m pub/sub deployment. The handling of CaPro messages is different for 1:m and n:m deployment. More...

#include <subscriber_port_multi_producer.hpp>

Inheritance diagram for iox::popo::SubscriberPortMultiProducer:
Inheritance graph
[legend]
Collaboration diagram for iox::popo::SubscriberPortMultiProducer:
Collaboration graph
[legend]

Public Types

using MemberType_t = SubscriberPortData
 
- Public Types inherited from iox::popo::SubscriberPortRouDi
using MemberType_t = SubscriberPortData
 
- Public Types inherited from iox::popo::BasePort
using MemberType_t = BasePortData
 

Public Member Functions

 SubscriberPortMultiProducer (cxx::not_null< MemberType_t *const > publisherPortDataPtr) noexcept
 
 SubscriberPortMultiProducer (const SubscriberPortMultiProducer &other)=delete
 
SubscriberPortMultiProduceroperator= (const SubscriberPortMultiProducer &)=delete
 
 SubscriberPortMultiProducer (SubscriberPortMultiProducer &&rhs)=default
 
SubscriberPortMultiProduceroperator= (SubscriberPortMultiProducer &&rhs)=default
 
cxx::optional< capro::CaproMessagetryGetCaProMessage () noexcept override
 get an optional CaPro message that changes the subscription state of the subscriber More...
 
cxx::optional< capro::CaproMessagedispatchCaProMessageAndGetPossibleResponse (const capro::CaproMessage &caProMessage) noexcept override
 dispatch a CaPro message to the subscriber for processing More...
 
- Public Member Functions inherited from iox::popo::SubscriberPortRouDi
 SubscriberPortRouDi (cxx::not_null< MemberType_t *const > subscriberPortDataPtr) noexcept
 
 SubscriberPortRouDi (const SubscriberPortRouDi &other)=delete
 
SubscriberPortRouDioperator= (const SubscriberPortRouDi &)=delete
 
 SubscriberPortRouDi (SubscriberPortRouDi &&rhs)=default
 
SubscriberPortRouDioperator= (SubscriberPortRouDi &&rhs)=default
 
QueueFullPolicy getQueueFullPolicy () const noexcept
 Returns behaviour in case of a full delivery queue. More...
 
void releaseAllChunks () noexcept
 cleanup the subscriber and release all the chunks it currently holds Caution: Contract is that user process is no more running when cleanup is called
 
- Public Member Functions inherited from iox::popo::BasePort
 BasePort (MemberType_t *const basePortDataPtr) noexcept
 
 BasePort (const BasePort &other)=delete
 
BasePortoperator= (const BasePort &)=delete
 
 BasePort (BasePort &&) noexcept
 
BasePortoperator= (BasePort &&) noexcept
 
 operator bool () const noexcept
 a port can be constructed from a nullptr, additionally it also can be moved and in these cases the member methods would work on a nullptr. to circumvent this problem More...
 
capro::ServiceDescription getCaProServiceDescription () const noexcept
 Reads Type of actual CaPro Port (publisher/subscriber...) More...
 
RuntimeName_t getRuntimeName () const noexcept
 Gets name of the application's runtime for the active port. More...
 
UniquePortId getUniqueID () const noexcept
 Gets Id of the active port. More...
 
NodeName_t getNodeName () const noexcept
 returns node name for the active port More...
 
void destroy () noexcept
 Indicate that this port can be destroyed.
 
bool toBeDestroyed () const noexcept
 Checks whether port can be destroyed. More...
 

Additional Inherited Members

- Protected Member Functions inherited from iox::popo::SubscriberPortRouDi
const MemberType_tgetMembers () const noexcept
 
MemberType_tgetMembers () noexcept
 
- Protected Member Functions inherited from iox::popo::BasePort
const MemberType_tgetMembers () const noexcept
 
MemberType_tgetMembers () noexcept
 
- Protected Attributes inherited from iox::popo::SubscriberPortRouDi
ChunkReceiver< SubscriberPortData::ChunkReceiverData_tm_chunkReceiver
 

Detailed Description

The SubscriberPortMultiProducer is the implementation of the SubscriberPortRouDi for a setup where subscribers can have multiple matching publishers. I.e. a n:m pub/sub deployment. The handling of CaPro messages is different for 1:m and n:m deployment.

Member Function Documentation

◆ dispatchCaProMessageAndGetPossibleResponse()

cxx::optional<capro::CaproMessage> iox::popo::SubscriberPortMultiProducer::dispatchCaProMessageAndGetPossibleResponse ( const capro::CaproMessage caProMessage)
overridevirtualnoexcept

dispatch a CaPro message to the subscriber for processing

Parameters
[in]caProMessageto process
Returns
CaPro message with an immediate response the provided CaPro message, empty optional if no response

Implements iox::popo::SubscriberPortRouDi.

◆ tryGetCaProMessage()

cxx::optional<capro::CaproMessage> iox::popo::SubscriberPortMultiProducer::tryGetCaProMessage ( )
overridevirtualnoexcept

get an optional CaPro message that changes the subscription state of the subscriber

Returns
CaPro message with new subscription requet, empty optional if no state change

Implements iox::popo::SubscriberPortRouDi.


The documentation for this class was generated from the following file: