Skip to content

iox🔗

More...

Namespaces🔗

Name
iox::capro
iox::config
iox::gw
iox::helper
iox::log
iox::mepoo
Mepoo Component Description.
iox::popo
iox::posix
iox::roudi
iox::runtime
iox::version

Classes🔗

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

Types🔗

Name
enum uint32_t SubscribeState
enum uint32_t ConnectionState
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 popo::TypedUniqueId< popo::BasePortData > UniquePortId
using iox::build::CommunicationPolicy SubscriberPortType
using iox::posix::UnixDomainSocket IpcChannelType
The socket is created in the current path if no absolute path is given hence we need an absolut path so that every application knows where our sockets can be found.
using cxx::string< MAX_RUNTIME_NAME_LENGTH > RuntimeName_t
using cxx::string< 100 > NodeName_t
using cxx::string< 128 > ShmName_t

Attributes🔗

Name
constexpr uint32_t MAX_RECEIVERS_PER_SENDERPORT
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 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_PER_CONDITION_VARIABLE
constexpr uint32_t MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET
constexpr uint8_t MAX_NUMBER_OF_EVENT_VARIABLES
constexpr uint8_t MAX_NUMBER_OF_EVENTS_PER_LISTENER
constexpr uint32_t MAX_APPLICATION_CAPRO_FIFO_SIZE
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 MAX_NUMBER_OF_INSTANCES
constexpr uint32_t MAX_NODE_NUMBER
constexpr uint32_t MAX_NODE_PER_PROCESS
constexpr uint32_t MAX_RUNTIME_NAME_LENGTH
constexpr auto LogFatal
constexpr auto LogError
constexpr auto LogWarn
constexpr auto LogInfo
constexpr auto LogDebug
constexpr auto LogVerbose

Detailed Description🔗

Todo:

  • this might be needed to be public when the logger is used in templates
  • this might be needed to be public when the logger is used in templates

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
CONNNECTED
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 UniquePortId🔗

using iox::UniquePortId = typedef popo::TypedUniqueId<popo::BasePortData>;

using SubscriberPortType🔗

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

using IpcChannelType🔗

using iox::IpcChannelType = typedef iox::posix::UnixDomainSocket;

The socket is created in the current path if no absolute path is given hence we need an absolut path so that every application knows where our sockets can be found.

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>;

Attributes Documentation🔗

variable MAX_RECEIVERS_PER_SENDERPORT🔗

constexpr uint32_t MAX_RECEIVERS_PER_SENDERPORT = build::IOX_MAX_SUBSCRIBERS_PER_PUBLISHER;

Todo: remove MAX_RECEIVERS_PER_SENDERPORT when the new port building blocks are used

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 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_PER_CONDITION_VARIABLE🔗

constexpr uint32_t MAX_NUMBER_OF_NOTIFIERS_PER_CONDITION_VARIABLE = 128U;

variable MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET🔗

constexpr uint32_t MAX_NUMBER_OF_ATTACHMENTS_PER_WAITSET = 128U;

variable MAX_NUMBER_OF_EVENT_VARIABLES🔗

constexpr uint8_t MAX_NUMBER_OF_EVENT_VARIABLES = 128U;

variable MAX_NUMBER_OF_EVENTS_PER_LISTENER🔗

constexpr uint8_t MAX_NUMBER_OF_EVENTS_PER_LISTENER = 128U;

variable MAX_APPLICATION_CAPRO_FIFO_SIZE🔗

constexpr uint32_t MAX_APPLICATION_CAPRO_FIFO_SIZE = 128U;

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 MAX_NUMBER_OF_INSTANCES🔗

constexpr uint32_t MAX_NUMBER_OF_INSTANCES = 50U;

Maximum number of instances of a given service, which can be found. This limitation is coming due to the fixed capacity of the cxx::vector (This doesn't limit the offered number of instances)

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;

variable LogFatal🔗

static constexpr auto LogFatal = iox::log::ffbb::LogFatal<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

variable LogError🔗

static constexpr auto LogError = iox::log::ffbb::LogError<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

variable LogWarn🔗

static constexpr auto LogWarn = iox::log::ffbb::LogWarn<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

variable LogInfo🔗

static constexpr auto LogInfo = iox::log::ffbb::LogInfo<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

variable LogDebug🔗

static constexpr auto LogDebug = iox::log::ffbb::LogDebug<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

variable LogVerbose🔗

static constexpr auto LogVerbose = iox::log::ffbb::LogVerbose<[LoggingComponent](/v1.0.1/API-reference/posh/Classes/structiox_1_1LoggingComponent/)>;

Updated on 17 June 2021 at 11:15:27 CEST