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