Skip to content

iox🔗

Namespaces🔗

Name
iox::capro
iox::config
iox::gw
iox::helper
iox::mepoo
iox::popo
iox::roudi
iox::runtime
iox::version

Classes🔗

Name
struct iox::Config
struct iox::DefaultChunkDistributorConfig
struct iox::DefaultChunkQueueConfig

Types🔗

Name
enum uint32_t SubscribeState { NOT_SUBSCRIBED = 0, SUBSCRIBE_REQUESTED, SUBSCRIBED, UNSUBSCRIBE_REQUESTED, WAIT_FOR_OFFER}
enum uint32_t ConnectionState { NOT_CONNECTED = 0, CONNECT_REQUESTED, CONNECTED, DISCONNECT_REQUESTED, WAIT_FOR_OFFER}
using Config< mepoo::SegmentConfig, config::RouDiConfig > RouDiConfig_t
using iox::popo::PublisherPortRouDi PublisherPortRouDiType
using iox::popo::PublisherPortUser PublisherPortUserType
using iox::popo::SubscriberPortRouDi SubscriberPortRouDiType
using iox::popo::SubscriberPortUser SubscriberPortUserType
using iox::build::CommunicationPolicy SubscriberPortType
using cxx::string< MAX_RUNTIME_NAME_LENGTH > RuntimeName_t
using cxx::string< 100 > NodeName_t
using cxx::string< 128 > ShmName_t

Functions🔗

Name
constexpr const char * asStringLiteral(ConnectionState value)
Converts the ConnectionState to a string literal.
std::ostream & operator<<(std::ostream & stream, ConnectionState value)
Convenience stream operator to easily use the asStringLiteral function with std::ostream.
log::LogStream & operator<<(log::LogStream & stream, ConnectionState value)
Convenience stream operator to easily use the asStringLiteral function with iox::log::LogStream.

Attributes🔗

Name
constexpr uint32_t MAX_PUBLISHERS
constexpr uint32_t MAX_SUBSCRIBERS_PER_PUBLISHER
constexpr uint32_t MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY
constexpr uint64_t MAX_PUBLISHER_HISTORY
constexpr uint32_t MAX_SUBSCRIBERS
constexpr uint32_t MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY
constexpr uint32_t MAX_SUBSCRIBER_QUEUE_CAPACITY
constexpr uint32_t PUBLISHERS_RESERVED_FOR_INTROSPECTION
constexpr uint32_t PUBLISHERS_RESERVED_FOR_SERVICE_REGISTRY
constexpr uint32_t NUMBER_OF_INTERNAL_PUBLISHERS
constexpr uint32_t MAX_INTERFACE_NUMBER
constexpr uint32_t MAX_INTERFACE_CAPRO_FIFO_SIZE
constexpr uint32_t MAX_CHANNEL_NUMBER
constexpr uint32_t MAX_GATEWAY_SERVICES
constexpr uint32_t MAX_CLIENTS
constexpr uint32_t MAX_REQUESTS_ALLOCATED_SIMULTANEOUSLY
constexpr uint32_t MAX_RESPONSES_PROCESSED_SIMULTANEOUSLY
constexpr uint32_t MAX_RESPONSE_QUEUE_CAPACITY
constexpr uint32_t MAX_SERVERS
constexpr uint32_t MAX_CLIENTS_PER_SERVER
constexpr uint32_t MAX_REQUESTS_PROCESSED_SIMULTANEOUSLY
constexpr uint32_t MAX_RESPONSES_ALLOCATED_SIMULTANEOUSLY
constexpr uint32_t MAX_REQUEST_QUEUE_CAPACITY
constexpr uint32_t MAX_NUMBER_OF_CONDITION_VARIABLES
constexpr uint32_t MAX_NUMBER_OF_NOTIFIERS
constexpr uint32_t MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET
constexpr uint32_t MAX_NUMBER_OF_EVENTS_PER_LISTENER
constexpr uint32_t MAX_NUMBER_OF_MEMPOOLS
constexpr uint32_t MAX_SHM_SEGMENTS
constexpr uint32_t MAX_NUMBER_OF_MEMORY_PROVIDER
constexpr uint32_t MAX_NUMBER_OF_MEMORY_BLOCKS_PER_MEMORY_PROVIDER
constexpr uint32_t CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT
constexpr uint32_t CHUNK_NO_USER_HEADER_SIZE
constexpr uint32_t CHUNK_NO_USER_HEADER_ALIGNMENT
constexpr uint32_t ROUDI_MAX_MESSAGES
constexpr uint32_t ROUDI_MESSAGE_SIZE
constexpr uint32_t APP_MAX_MESSAGES
constexpr uint32_t APP_MESSAGE_SIZE
constexpr uint32_t MAX_PROCESS_NUMBER
constexpr uint32_t SERVICE_REGISTRY_CAPACITY
constexpr uint32_t MAX_FINDSERVICE_RESULT_SIZE
constexpr const char SERVICE_DISCOVERY_SERVICE_NAME
constexpr const char SERVICE_DISCOVERY_INSTANCE_NAME
constexpr const char SERVICE_DISCOVERY_EVENT_NAME
constexpr uint32_t MAX_NODE_NUMBER
constexpr uint32_t MAX_NODE_PER_PROCESS
constexpr uint32_t MAX_RUNTIME_NAME_LENGTH

Types Documentation🔗

enum SubscribeState🔗

Enumerator Value Description
NOT_SUBSCRIBED 0
SUBSCRIBE_REQUESTED
SUBSCRIBED
UNSUBSCRIBE_REQUESTED
WAIT_FOR_OFFER

enum ConnectionState🔗

Enumerator Value Description
NOT_CONNECTED 0
CONNECT_REQUESTED
CONNECTED
DISCONNECT_REQUESTED
WAIT_FOR_OFFER

using RouDiConfig_t🔗

using iox::RouDiConfig_t = typedef Config<mepoo::SegmentConfig, config::RouDiConfig>;

using PublisherPortRouDiType🔗

using iox::PublisherPortRouDiType = typedef iox::popo::PublisherPortRouDi;

using PublisherPortUserType🔗

using iox::PublisherPortUserType = typedef iox::popo::PublisherPortUser;

using SubscriberPortRouDiType🔗

using iox::SubscriberPortRouDiType = typedef iox::popo::SubscriberPortRouDi;

using SubscriberPortUserType🔗

using iox::SubscriberPortUserType = typedef iox::popo::SubscriberPortUser;

using SubscriberPortType🔗

using iox::SubscriberPortType = typedef iox::build::CommunicationPolicy;

using RuntimeName_t🔗

using iox::RuntimeName_t = typedef cxx::string<MAX_RUNTIME_NAME_LENGTH>;

using NodeName_t🔗

using iox::NodeName_t = typedef cxx::string<100>;

using ShmName_t🔗

using iox::ShmName_t = typedef cxx::string<128>;

Functions Documentation🔗

function asStringLiteral🔗

inline constexpr const char * asStringLiteral(
    ConnectionState value
)

Converts the ConnectionState to a string literal.

Parameters:

  • value to convert to a string literal

Return: pointer to a string literal

function operator<<🔗

inline std::ostream & operator<<(
    std::ostream & stream,
    ConnectionState value
)

Convenience stream operator to easily use the asStringLiteral function with std::ostream.

Parameters:

  • stream sink to write the message to
  • value to convert to a string literal

Return: the reference to stream which was provided as input parameter

function operator<<🔗

inline log::LogStream & operator<<(
    log::LogStream & stream,
    ConnectionState value
)

Convenience stream operator to easily use the asStringLiteral function with iox::log::LogStream.

Parameters:

  • stream sink to write the message to
  • value to convert to a string literal

Return: the reference to stream which was provided as input parameter

Attributes Documentation🔗

variable MAX_PUBLISHERS🔗

constexpr uint32_t MAX_PUBLISHERS = build::IOX_MAX_PUBLISHERS;

variable MAX_SUBSCRIBERS_PER_PUBLISHER🔗

constexpr uint32_t MAX_SUBSCRIBERS_PER_PUBLISHER = build::IOX_MAX_SUBSCRIBERS_PER_PUBLISHER;

variable MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY =
    build::IOX_MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY;

variable MAX_PUBLISHER_HISTORY🔗

constexpr uint64_t MAX_PUBLISHER_HISTORY = build::IOX_MAX_PUBLISHER_HISTORY;

variable MAX_SUBSCRIBERS🔗

constexpr uint32_t MAX_SUBSCRIBERS = build::IOX_MAX_SUBSCRIBERS;

variable MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY =
    build::IOX_MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY;

variable MAX_SUBSCRIBER_QUEUE_CAPACITY🔗

constexpr uint32_t MAX_SUBSCRIBER_QUEUE_CAPACITY = MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY;

variable PUBLISHERS_RESERVED_FOR_INTROSPECTION🔗

constexpr uint32_t PUBLISHERS_RESERVED_FOR_INTROSPECTION = 5;

variable PUBLISHERS_RESERVED_FOR_SERVICE_REGISTRY🔗

constexpr uint32_t PUBLISHERS_RESERVED_FOR_SERVICE_REGISTRY = 1;

variable NUMBER_OF_INTERNAL_PUBLISHERS🔗

constexpr uint32_t NUMBER_OF_INTERNAL_PUBLISHERS =
    PUBLISHERS_RESERVED_FOR_INTROSPECTION + PUBLISHERS_RESERVED_FOR_SERVICE_REGISTRY;

variable MAX_INTERFACE_NUMBER🔗

constexpr uint32_t MAX_INTERFACE_NUMBER = build::IOX_MAX_INTERFACE_NUMBER;

With MAX_SUBSCRIBER_QUEUE_CAPACITY = MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY we couple the maximum number of chunks a user is allowed to hold with the maximum queue capacity. This allows that a polling user can replace all the held chunks in one execution with all new ones from a completely filled queue. Or the other way round, when we have a contract with the user regarding how many chunks they are allowed to hold, then the queue size needs not be bigger. We can provide this number of newest chunks, more the user would not be allowed to hold anyway

variable MAX_INTERFACE_CAPRO_FIFO_SIZE🔗

constexpr uint32_t MAX_INTERFACE_CAPRO_FIFO_SIZE = MAX_PUBLISHERS;

variable MAX_CHANNEL_NUMBER🔗

constexpr uint32_t MAX_CHANNEL_NUMBER = MAX_PUBLISHERS + MAX_SUBSCRIBERS;

variable MAX_GATEWAY_SERVICES🔗

constexpr uint32_t MAX_GATEWAY_SERVICES = 2 * MAX_CHANNEL_NUMBER;

variable MAX_CLIENTS🔗

constexpr uint32_t MAX_CLIENTS = build::IOX_MAX_SUBSCRIBERS;

variable MAX_REQUESTS_ALLOCATED_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_REQUESTS_ALLOCATED_SIMULTANEOUSLY = 4U;

Todo:

variable MAX_RESPONSES_PROCESSED_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_RESPONSES_PROCESSED_SIMULTANEOUSLY = 16U;

variable MAX_RESPONSE_QUEUE_CAPACITY🔗

constexpr uint32_t MAX_RESPONSE_QUEUE_CAPACITY = 16U;

variable MAX_SERVERS🔗

constexpr uint32_t MAX_SERVERS = build::IOX_MAX_PUBLISHERS;

variable MAX_CLIENTS_PER_SERVER🔗

constexpr uint32_t MAX_CLIENTS_PER_SERVER = 256U;

Todo:

variable MAX_REQUESTS_PROCESSED_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_REQUESTS_PROCESSED_SIMULTANEOUSLY = 4U;

variable MAX_RESPONSES_ALLOCATED_SIMULTANEOUSLY🔗

constexpr uint32_t MAX_RESPONSES_ALLOCATED_SIMULTANEOUSLY = MAX_REQUESTS_PROCESSED_SIMULTANEOUSLY;

variable MAX_REQUEST_QUEUE_CAPACITY🔗

constexpr uint32_t MAX_REQUEST_QUEUE_CAPACITY = 1024;

variable MAX_NUMBER_OF_CONDITION_VARIABLES🔗

constexpr uint32_t MAX_NUMBER_OF_CONDITION_VARIABLES = 1024U;

variable MAX_NUMBER_OF_NOTIFIERS🔗

constexpr uint32_t MAX_NUMBER_OF_NOTIFIERS = build::IOX_MAX_NUMBER_OF_NOTIFIERS;

variable MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET🔗

constexpr uint32_t MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET = MAX_NUMBER_OF_NOTIFIERS;

Note: Waitset and Listener share both the max available notifiers, if one of them is running out of of notifiers the variable above must be increased

variable MAX_NUMBER_OF_EVENTS_PER_LISTENER🔗

constexpr uint32_t MAX_NUMBER_OF_EVENTS_PER_LISTENER = MAX_NUMBER_OF_NOTIFIERS;

variable MAX_NUMBER_OF_MEMPOOLS🔗

constexpr uint32_t MAX_NUMBER_OF_MEMPOOLS = 32U;

variable MAX_SHM_SEGMENTS🔗

constexpr uint32_t MAX_SHM_SEGMENTS = 100U;

variable MAX_NUMBER_OF_MEMORY_PROVIDER🔗

constexpr uint32_t MAX_NUMBER_OF_MEMORY_PROVIDER = 8U;

variable MAX_NUMBER_OF_MEMORY_BLOCKS_PER_MEMORY_PROVIDER🔗

constexpr uint32_t MAX_NUMBER_OF_MEMORY_BLOCKS_PER_MEMORY_PROVIDER = 64U;

variable CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT🔗

constexpr uint32_t CHUNK_DEFAULT_USER_PAYLOAD_ALIGNMENT {8U};

variable CHUNK_NO_USER_HEADER_SIZE🔗

constexpr uint32_t CHUNK_NO_USER_HEADER_SIZE {0U};

variable CHUNK_NO_USER_HEADER_ALIGNMENT🔗

constexpr uint32_t CHUNK_NO_USER_HEADER_ALIGNMENT {1U};

variable ROUDI_MAX_MESSAGES🔗

constexpr uint32_t ROUDI_MAX_MESSAGES = 5U;

variable ROUDI_MESSAGE_SIZE🔗

constexpr uint32_t ROUDI_MESSAGE_SIZE = 512U;

variable APP_MAX_MESSAGES🔗

constexpr uint32_t APP_MAX_MESSAGES = 5U;

variable APP_MESSAGE_SIZE🔗

constexpr uint32_t APP_MESSAGE_SIZE = 512U;

variable MAX_PROCESS_NUMBER🔗

constexpr uint32_t MAX_PROCESS_NUMBER = 300U;

variable SERVICE_REGISTRY_CAPACITY🔗

constexpr uint32_t SERVICE_REGISTRY_CAPACITY = MAX_PUBLISHERS + MAX_SERVERS;

variable MAX_FINDSERVICE_RESULT_SIZE🔗

constexpr uint32_t MAX_FINDSERVICE_RESULT_SIZE = SERVICE_REGISTRY_CAPACITY;

variable SERVICE_DISCOVERY_SERVICE_NAME🔗

constexpr const char SERVICE_DISCOVERY_SERVICE_NAME = "ServiceDiscovery";

variable SERVICE_DISCOVERY_INSTANCE_NAME🔗

constexpr const char SERVICE_DISCOVERY_INSTANCE_NAME = "RouDi_ID";

variable SERVICE_DISCOVERY_EVENT_NAME🔗

constexpr const char SERVICE_DISCOVERY_EVENT_NAME = "ServiceRegistry";

variable MAX_NODE_NUMBER🔗

constexpr uint32_t MAX_NODE_NUMBER = 1000U;

variable MAX_NODE_PER_PROCESS🔗

constexpr uint32_t MAX_NODE_PER_PROCESS = 50U;

variable MAX_RUNTIME_NAME_LENGTH🔗

constexpr uint32_t MAX_RUNTIME_NAME_LENGTH = MAX_IPC_CHANNEL_NAME_LENGTH;

Updated on 18 December 2023 at 13:11:43 CET