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