Skip to content

iox::popo::PublisherPortRouDi🔗

The PublisherPortRouDi provides the API for accessing a publisher port from the RouDi middleware daemon side. The publisher port is divided in the three parts PublisherPortData, PublisherPortRouDi and PublisherPortUser. The PublisherPortRouDi 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 <publisher_port_roudi.hpp>

Inherits from iox::popo::BasePort

Public Types🔗

Name
using PublisherPortData MemberType_t

Public Functions🔗

Name
PublisherPortRouDi(cxx::not_null< MemberType_t *const > publisherPortDataPtr)
PublisherPortRouDi(const PublisherPortRouDi & other)
PublisherPortRouDi & operator=(const PublisherPortRouDi & )
PublisherPortRouDi(PublisherPortRouDi && rhs) =default
PublisherPortRouDi & operator=(PublisherPortRouDi && rhs) =default
~PublisherPortRouDi() =default
SubscriberTooSlowPolicy getSubscriberTooSlowPolicy() const
Returns behaviour in case of a full delivery queue.
cxx::optional< capro::CaproMessage > tryGetCaProMessage()
get an optional CaPro message that changes the offer state of the publisher
cxx::optional< capro::CaproMessage > dispatchCaProMessageAndGetPossibleResponse(const capro::CaproMessage & caProMessage)
dispatch a CaPro message to the publisher for processing
void releaseAllChunks()
cleanup the publisher and release all the chunks it currently holds Caution: Contract is that user process is no more running when cleanup is called

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::PublisherPortRouDi::MemberType_t =  PublisherPortData;

Public Functions Documentation🔗

function PublisherPortRouDi🔗

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

function PublisherPortRouDi🔗

PublisherPortRouDi(
    const PublisherPortRouDi & other
)

function operator=🔗

PublisherPortRouDi & operator=(
    const PublisherPortRouDi & 
)

function PublisherPortRouDi🔗

PublisherPortRouDi(
    PublisherPortRouDi && rhs
) =default

function operator=🔗

PublisherPortRouDi & operator=(
    PublisherPortRouDi && rhs
) =default

function ~PublisherPortRouDi🔗

~PublisherPortRouDi() =default

function getSubscriberTooSlowPolicy🔗

SubscriberTooSlowPolicy getSubscriberTooSlowPolicy() const

Returns behaviour in case of a full delivery queue.

Return: SubScriberTooSlowPolicy What happens if the delivery queue is full

function tryGetCaProMessage🔗

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

get an optional CaPro message that changes the offer state of the publisher

Return: CaPro message with the new offer state, empty optional if no state change

function dispatchCaProMessageAndGetPossibleResponse🔗

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

dispatch a CaPro message to the publisher for processing

Parameters:

  • caProMessage to process

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

function releaseAllChunks🔗

void releaseAllChunks()

cleanup the publisher and release all the chunks it currently holds Caution: Contract is that user process is no more running when cleanup is called


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