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 31 May 2022 at 15:29:16 CEST