Skip to content

iox::popo::SubscriberPortRouDi🔗

The SubscriberPortRouDi provides the API for accessing a subscriber port from the RouDi middleware daemon side. The subscriber port is divided in the sevaral parts like SubscriberPortData, SubscriberPortRouDi and SubscriberPortUser. The SubscriberPortRouDi provides service discovery functionality that is based on CaPro messages. With this API the dynamic connections between publisher and subscriber ports can be established.

#include <subscriber_port_roudi.hpp>

Inherits from iox::popo::BasePort

Inherited by iox::popo::SubscriberPortMultiProducer, iox::popo::SubscriberPortSingleProducer

Public Types🔗

Name
using SubscriberPortData MemberType_t

Public Functions🔗

Name
SubscriberPortRouDi(cxx::not_null< MemberType_t *const > subscriberPortDataPtr)
SubscriberPortRouDi(const SubscriberPortRouDi & other)
SubscriberPortRouDi & operator=(const SubscriberPortRouDi & )
SubscriberPortRouDi(SubscriberPortRouDi && rhs) =default
SubscriberPortRouDi & operator=(SubscriberPortRouDi && rhs) =default
virtual ~SubscriberPortRouDi() =default
QueueFullPolicy getQueueFullPolicy() const
Returns behaviour in case of a full delivery queue.
virtual cxx::optional< capro::CaproMessage > tryGetCaProMessage() =0
get an optional CaPro message that requests changes to the subscription state of the subscriber
virtual cxx::optional< capro::CaproMessage > dispatchCaProMessageAndGetPossibleResponse(const capro::CaproMessage & caProMessage) =0
dispatch a CaPro message to the subscriber for processing
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🔗

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

Protected Attributes🔗

Name
ChunkReceiver< SubscriberPortData::ChunkReceiverData_t > m_chunkReceiver

Additional inherited members🔗

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.

Public Types Documentation🔗

using MemberType_t🔗

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

Public Functions Documentation🔗

function SubscriberPortRouDi🔗

explicit SubscriberPortRouDi(
    cxx::not_null< MemberType_t *const > subscriberPortDataPtr
)

function SubscriberPortRouDi🔗

SubscriberPortRouDi(
    const SubscriberPortRouDi & other
)

function operator=🔗

SubscriberPortRouDi & operator=(
    const SubscriberPortRouDi & 
)

function SubscriberPortRouDi🔗

SubscriberPortRouDi(
    SubscriberPortRouDi && rhs
) =default

function operator=🔗

SubscriberPortRouDi & operator=(
    SubscriberPortRouDi && rhs
) =default

function ~SubscriberPortRouDi🔗

virtual ~SubscriberPortRouDi() =default

function getQueueFullPolicy🔗

QueueFullPolicy getQueueFullPolicy() const

Returns behaviour in case of a full delivery queue.

Return: QueueFullPolicy What happens if the delivery queue is full

function tryGetCaProMessage🔗

virtual cxx::optional< capro::CaproMessage > tryGetCaProMessage() =0

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

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

Reimplemented by: iox::popo::SubscriberPortSingleProducer::tryGetCaProMessage, iox::popo::SubscriberPortMultiProducer::tryGetCaProMessage

function dispatchCaProMessageAndGetPossibleResponse🔗

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

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

Reimplemented by: iox::popo::SubscriberPortSingleProducer::dispatchCaProMessageAndGetPossibleResponse, iox::popo::SubscriberPortMultiProducer::dispatchCaProMessageAndGetPossibleResponse

function releaseAllChunks🔗

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 Documentation🔗

function getMembers🔗

const MemberType_t * getMembers() const

function getMembers🔗

MemberType_t * getMembers()

Protected Attributes Documentation🔗

variable m_chunkReceiver🔗

ChunkReceiver< SubscriberPortData::ChunkReceiverData_t > m_chunkReceiver;

Updated on 31 May 2022 at 15:29:16 CEST