Skip to content

iox::popo::SubscriberPortMultiProducer🔗

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.

#include <subscriber_port_multi_producer.hpp>

Inherits from iox::popo::SubscriberPortRouDi, iox::popo::BasePort

Public Types🔗

Name
using SubscriberPortData MemberType_t

Public Functions🔗

Name
SubscriberPortMultiProducer(cxx::not_null< MemberType_t *const > publisherPortDataPtr)
SubscriberPortMultiProducer(const SubscriberPortMultiProducer & other)
SubscriberPortMultiProducer & operator=(const SubscriberPortMultiProducer & )
SubscriberPortMultiProducer(SubscriberPortMultiProducer && rhs) =default
SubscriberPortMultiProducer & operator=(SubscriberPortMultiProducer && rhs) =default
~SubscriberPortMultiProducer() =default
virtual cxx::optional< capro::CaproMessage > tryGetCaProMessage() override
get an optional CaPro message that changes the subscription state of the subscriber
virtual cxx::optional< capro::CaproMessage > dispatchCaProMessageAndGetPossibleResponse(const capro::CaproMessage & caProMessage) override
dispatch a CaPro message to the subscriber for processing

Additional inherited members🔗

Public Functions inherited from iox::popo::SubscriberPortRouDi

Name
SubscriberPortRouDi(cxx::not_null< MemberType_t *const > subscriberPortDataPtr)
SubscriberPortRouDi(const SubscriberPortRouDi & other)
SubscriberPortRouDi(SubscriberPortRouDi && rhs) =default
virtual ~SubscriberPortRouDi() =default
QueueFullPolicy getQueueFullPolicy() const
Returns behaviour in case of a full delivery queue.
void releaseAllChunks()
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

Protected Functions inherited from iox::popo::SubscriberPortRouDi

Name
const MemberType_t * getMembers() const
MemberType_t * getMembers()

Protected Attributes inherited from iox::popo::SubscriberPortRouDi

Name
ChunkReceiver< SubscriberPortData::ChunkReceiverData_t > m_chunkReceiver

Public Functions inherited from iox::popo::BasePort

Name
BasePort(MemberType_t *const basePortDataPtr)
BasePort(const BasePort & other)
BasePort(BasePort && )
virtual ~BasePort() =default
operator bool() const
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
capro::ServiceDescription getCaProServiceDescription() const
Reads Type of actual CaPro Port (publisher/subscriber...)
RuntimeName_t getRuntimeName() const
Gets name of the application's runtime for the active port.
UniquePortId getUniqueID() const
Gets Id of the active port.
NodeName_t getNodeName() const
returns node name for the active port
void destroy()
Indicate that this port can be destroyed.
bool toBeDestroyed() const
Checks whether port can be destroyed.

Protected Functions inherited from iox::popo::BasePort

Name
const MemberType_t * getMembers() const
MemberType_t * getMembers()

Public Types Documentation🔗

using MemberType_t🔗

using iox::popo::SubscriberPortMultiProducer::MemberType_t =  SubscriberPortData;

Public Functions Documentation🔗

function SubscriberPortMultiProducer🔗

explicit SubscriberPortMultiProducer(
    cxx::not_null< MemberType_t *const > publisherPortDataPtr
)

function SubscriberPortMultiProducer🔗

SubscriberPortMultiProducer(
    const SubscriberPortMultiProducer & other
)

function operator=🔗

SubscriberPortMultiProducer & operator=(
    const SubscriberPortMultiProducer & 
)

function SubscriberPortMultiProducer🔗

SubscriberPortMultiProducer(
    SubscriberPortMultiProducer && rhs
) =default

function operator=🔗

SubscriberPortMultiProducer & operator=(
    SubscriberPortMultiProducer && rhs
) =default

function ~SubscriberPortMultiProducer🔗

~SubscriberPortMultiProducer() =default

function tryGetCaProMessage🔗

virtual cxx::optional< capro::CaproMessage > tryGetCaProMessage() override

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

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

Reimplements: iox::popo::SubscriberPortRouDi::tryGetCaProMessage

function dispatchCaProMessageAndGetPossibleResponse🔗

virtual cxx::optional< capro::CaproMessage > dispatchCaProMessageAndGetPossibleResponse(
    const capro::CaproMessage & caProMessage
) override

dispatch a CaPro message to the subscriber for processing

Parameters:

  • caProMessage to process

Return: CaPro message with an immediate response the provided CaPro message, empty optional if no response

Reimplements: iox::popo::SubscriberPortRouDi::dispatchCaProMessageAndGetPossibleResponse


Updated on 26 April 2021 at 15:31:02 CEST