Skip to content

iox::roudi::PortManager🔗

Public Types🔗

Name
using iox::runtime::PortConfigInfo PortConfigInfo

Public Functions🔗

Name
PortManager(RouDiMemoryInterface * roudiMemoryInterface)
virtual ~PortManager() =default
void stopPortIntrospection()
void doDiscovery()
cxx::expected< PublisherPortRouDiType::MemberType_t *, PortPoolError > acquirePublisherPortData(const capro::ServiceDescription & service, const popo::PublisherOptions & publisherOptions, const RuntimeName_t & runtimeName, mepoo::MemoryManager *const payloadDataSegmentMemoryManager, const PortConfigInfo & portConfigInfo)
cxx::expected< SubscriberPortType::MemberType_t *, PortPoolError > acquireSubscriberPortData(const capro::ServiceDescription & service, const popo::SubscriberOptions & subscriberOptions, const RuntimeName_t & runtimeName, const PortConfigInfo & portConfigInfo)
popo::InterfacePortData * acquireInterfacePortData(capro::Interfaces interface, const RuntimeName_t & runtimeName, const NodeName_t & nodeName ={""})
popo::ApplicationPortData * acquireApplicationPortData(const RuntimeName_t & runtimeName)
cxx::expected< runtime::NodeData *, PortPoolError > acquireNodeData(const RuntimeName_t & runtimeName, const NodeName_t & nodeName)
cxx::expected< popo::ConditionVariableData *, PortPoolError > acquireConditionVariableData(const RuntimeName_t & runtimeName)
void unblockProcessShutdown(const RuntimeName_t & runtimeName)
Used to unblock potential locks in the shutdown phase of a process.
void unblockRouDiShutdown()
Used to unblock potential locks in the shutdown phase of RouDi.
void deletePortsOfProcess(const RuntimeName_t & runtimeName)
const std::atomic< uint64_t > * serviceRegistryChangeCounter()
runtime::IpcMessage findService(const capro::ServiceDescription & service)

Protected Functions🔗

Name
void makeAllPublisherPortsToStopOffer()
void destroyPublisherPort(PublisherPortRouDiType::MemberType_t *const publisherPortData)
void destroySubscriberPort(SubscriberPortType::MemberType_t *const subscriberPortData)
void handlePublisherPorts()
void doDiscoveryForPublisherPort(PublisherPortRouDiType & publisherPort)
void handleSubscriberPorts()
void doDiscoveryForSubscriberPort(SubscriberPortType & subscriberPort)
void handleInterfaces()
void handleApplications()
void handleNodes()
void handleConditionVariables()
bool sendToAllMatchingPublisherPorts(const capro::CaproMessage & message, SubscriberPortType & subscriberSource)
void sendToAllMatchingSubscriberPorts(const capro::CaproMessage & message, PublisherPortRouDiType & publisherSource)
void sendToAllMatchingInterfacePorts(const capro::CaproMessage & message)
void addEntryToServiceRegistry(const capro::IdString_t & service, const capro::IdString_t & instance)
void removeEntryFromServiceRegistry(const capro::IdString_t & service, const capro::IdString_t & instance)
template \<typename T ,std::enable_if_t< std::is_same< T, iox::build::OneToManyPolicy >::value > * =nullptr>
cxx::optional< RuntimeName_t >
doesViolateCommunicationPolicy(const capro::ServiceDescription & service) const
template \<typename T ,std::enable_if_t< std::is_same< T, iox::build::ManyToManyPolicy >::value > * =nullptr>
cxx::optional< RuntimeName_t >
doesViolateCommunicationPolicy(const capro::ServiceDescription &service IOX_MAYBE_UNUSED) const

Public Types Documentation🔗

using PortConfigInfo🔗

using iox::roudi::PortManager::PortConfigInfo =  iox::runtime::PortConfigInfo;

Public Functions Documentation🔗

function PortManager🔗

PortManager(
    RouDiMemoryInterface * roudiMemoryInterface
)

function ~PortManager🔗

virtual ~PortManager() =default

function stopPortIntrospection🔗

void stopPortIntrospection()

Todo: Remove this later

function doDiscovery🔗

void doDiscovery()

function acquirePublisherPortData🔗

cxx::expected< PublisherPortRouDiType::MemberType_t *, PortPoolError > acquirePublisherPortData(
    const capro::ServiceDescription & service,
    const popo::PublisherOptions & publisherOptions,
    const RuntimeName_t & runtimeName,
    mepoo::MemoryManager *const payloadDataSegmentMemoryManager,
    const PortConfigInfo & portConfigInfo
)

function acquireSubscriberPortData🔗

cxx::expected< SubscriberPortType::MemberType_t *, PortPoolError > acquireSubscriberPortData(
    const capro::ServiceDescription & service,
    const popo::SubscriberOptions & subscriberOptions,
    const RuntimeName_t & runtimeName,
    const PortConfigInfo & portConfigInfo
)

function acquireInterfacePortData🔗

popo::InterfacePortData * acquireInterfacePortData(
    capro::Interfaces interface,
    const RuntimeName_t & runtimeName,
    const NodeName_t & nodeName ={""}
)

function acquireApplicationPortData🔗

popo::ApplicationPortData * acquireApplicationPortData(
    const RuntimeName_t & runtimeName
)

function acquireNodeData🔗

cxx::expected< runtime::NodeData *, PortPoolError > acquireNodeData(
    const RuntimeName_t & runtimeName,
    const NodeName_t & nodeName
)

function acquireConditionVariableData🔗

cxx::expected< popo::ConditionVariableData *, PortPoolError > acquireConditionVariableData(
    const RuntimeName_t & runtimeName
)

function unblockProcessShutdown🔗

void unblockProcessShutdown(
    const RuntimeName_t & runtimeName
)

Used to unblock potential locks in the shutdown phase of a process.

Parameters:

  • name of the process runtime which is about to shut down

function unblockRouDiShutdown🔗

void unblockRouDiShutdown()

Used to unblock potential locks in the shutdown phase of RouDi.

function deletePortsOfProcess🔗

void deletePortsOfProcess(
    const RuntimeName_t & runtimeName
)

function serviceRegistryChangeCounter🔗

const std::atomic< uint64_t > * serviceRegistryChangeCounter()

function findService🔗

runtime::IpcMessage findService(
    const capro::ServiceDescription & service
)

Protected Functions Documentation🔗

function makeAllPublisherPortsToStopOffer🔗

void makeAllPublisherPortsToStopOffer()

function destroyPublisherPort🔗

void destroyPublisherPort(
    PublisherPortRouDiType::MemberType_t *const publisherPortData
)

function destroySubscriberPort🔗

void destroySubscriberPort(
    SubscriberPortType::MemberType_t *const subscriberPortData
)

function handlePublisherPorts🔗

void handlePublisherPorts()

function doDiscoveryForPublisherPort🔗

void doDiscoveryForPublisherPort(
    PublisherPortRouDiType & publisherPort
)

function handleSubscriberPorts🔗

void handleSubscriberPorts()

function doDiscoveryForSubscriberPort🔗

void doDiscoveryForSubscriberPort(
    SubscriberPortType & subscriberPort
)

function handleInterfaces🔗

void handleInterfaces()

function handleApplications🔗

void handleApplications()

function handleNodes🔗

void handleNodes()

function handleConditionVariables🔗

void handleConditionVariables()

function sendToAllMatchingPublisherPorts🔗

bool sendToAllMatchingPublisherPorts(
    const capro::CaproMessage & message,
    SubscriberPortType & subscriberSource
)

function sendToAllMatchingSubscriberPorts🔗

void sendToAllMatchingSubscriberPorts(
    const capro::CaproMessage & message,
    PublisherPortRouDiType & publisherSource
)

function sendToAllMatchingInterfacePorts🔗

void sendToAllMatchingInterfacePorts(
    const capro::CaproMessage & message
)

function addEntryToServiceRegistry🔗

void addEntryToServiceRegistry(
    const capro::IdString_t & service,
    const capro::IdString_t & instance
)

function removeEntryFromServiceRegistry🔗

void removeEntryFromServiceRegistry(
    const capro::IdString_t & service,
    const capro::IdString_t & instance
)

function doesViolateCommunicationPolicy🔗

template <typename T ,
std::enable_if_t< std::is_same< T, iox::build::OneToManyPolicy >::value > *  =nullptr>
inline cxx::optional< RuntimeName_t > doesViolateCommunicationPolicy(
    const capro::ServiceDescription & service
) const

function doesViolateCommunicationPolicy🔗

template <typename T ,
std::enable_if_t< std::is_same< T, iox::build::ManyToManyPolicy >::value > *  =nullptr>
inline cxx::optional< RuntimeName_t > doesViolateCommunicationPolicy(
    const capro::ServiceDescription &service IOX_MAYBE_UNUSED
) const

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