Skip to content

iox:🇬🇼:Channel🔗

A data structure representing a channel between Iceoryx and an external system. More...

#include <channel.hpp>

Public Functions🔗

Name
constexpr Channel(const capro::ServiceDescription & service, const IceoryxTerminalPtr iceoryxTerminal, const ExternalTerminalPtr externalTerminal)
constexpr bool operator==(const Channel< IceoryxTerminal, ExternalTerminal > & rhs) const
capro::ServiceDescription getServiceDescription() const
IceoryxTerminalPtr getIceoryxTerminal() const
ExternalTerminalPtr getExternalTerminal() const
template \<typename IceoryxPubSubOptions >
cxx::expected< Channel< IceoryxTerminal, ExternalTerminal >, ChannelError >
create(const capro::ServiceDescription & service, const IceoryxPubSubOptions & options)
template \<typename IceoryxPubSubOptions >
cxx::expected< Channel, ChannelError >
create(const capro::ServiceDescription & service, const IceoryxPubSubOptions & options)
create Creates a channel for the given service whose terminals reside in a static object pool.

Detailed Description🔗

template <typename IceoryxTerminal ,
typename ExternalTerminal >
class iox::gw::Channel;

A data structure representing a channel between Iceoryx and an external system.

The class couples related iceoryx and external interfaces that communicate with eachother to form the communication channel. These interfaces are conceptualized as channel "Terminals".

The structure holds pointers to the instances of the terminals. The terminals can be created and managed externally, in which case the structure only serves as a means of coupling the two. This can be achieved by simply calling the constructor with pointers to them.

Alternatively, the class can manage the terminals internally in a static object pool, automatically cleaning them up when the channel is discarded. This can be achieved via the Channel::create method.

Public Functions Documentation🔗

function Channel🔗

inline constexpr Channel(
    const capro::ServiceDescription & service,
    const IceoryxTerminalPtr iceoryxTerminal,
    const ExternalTerminalPtr externalTerminal
)

function operator==🔗

inline constexpr bool operator==(
    const Channel< IceoryxTerminal, ExternalTerminal > & rhs
) const

function getServiceDescription🔗

inline capro::ServiceDescription getServiceDescription() const

function getIceoryxTerminal🔗

inline IceoryxTerminalPtr getIceoryxTerminal() const

function getExternalTerminal🔗

inline ExternalTerminalPtr getExternalTerminal() const

function create🔗

template <typename IceoryxPubSubOptions >
inline cxx::expected< Channel< IceoryxTerminal, ExternalTerminal >, ChannelError > create(
    const capro::ServiceDescription & service,
    const IceoryxPubSubOptions & options
)

function create🔗

template <typename IceoryxPubSubOptions >
static cxx::expected< Channel, ChannelError > create(
    const capro::ServiceDescription & service,
    const IceoryxPubSubOptions & options
)

create Creates a channel for the given service whose terminals reside in a static object pool.

Parameters:

  • service The service to create the channel for.
  • options The PublisherOptions or SubscriberOptions with historyCapacity and queueCapacity.

Return: A copy of the created channel, if successful.


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