iceoryx_doc
1.0.1
|
Classes | |
class | MemPoolIntrospection |
This class handles the mempool intropection for RouDi. It is recommended to use the MemPoolIntrospectionType alias which sets the intended template parameters required for the actual introspection. The class sends snapshots of the mempool usage to the introspection client if subscribed. More... | |
class | FixedSizeContainer |
class | PortIntrospection |
This class handles the port introspection for RouDi. It is recommended to use the PortIntrospectionType alias which sets the intended template parameter required for the actual introspection. The class manages a thread that periodically updates a field with port introspection data to which clients may subscribe. More... | |
class | ProcessIntrospection |
This class handles the process intropection for RouDi. It is recommended to use the ProcessIntrospectionType alias which sets the intended template parameter. The class tracks the adding and removal of processes and sends it to the introspection client if subscribed. More... | |
class | MemPoolCollectionMemoryBlock |
The MemPoolCollectionMemoryBlock is an implementation of a MemoryBlock for a MemPool MemoryManager. More... | |
class | MemPoolSegmentManagerMemoryBlock |
class | PortPoolMemoryBlock |
class | PortManager |
class | FixedPositionContainer |
workaround container until we have a fixed list with the needed functionality More... | |
struct | PortPoolData |
class | Process |
class | ProcessManagerInterface |
class | ProcessManager |
class | RouDi |
class | ServiceRegistry |
class | IceOryxRouDiApp |
struct | IceOryxRouDiComponents |
struct | MemPoolInfo |
struct for the storage of mempool usage information. This data container is used by the introstpection::MemPoolInfoContainer array to store information on all available memmpools. More... | |
struct | MemPoolIntrospectionInfo |
the topic for the mempool introspection that a user can subscribe to More... | |
struct | PortData |
container for common port data which is related to the subscriber port as well as the publisher port More... | |
struct | PublisherPortData |
container for publisher port introspection data. More... | |
struct | PortIntrospectionFieldTopic |
the topic for the port introspection that a user can subscribe to More... | |
struct | PortThroughputData |
struct | PortThroughputIntrospectionFieldTopic |
the topic for the port throughput that a user can subscribe to More... | |
struct | SubscriberPortChangingData |
struct | SubscriberPortChangingIntrospectionFieldTopic |
struct | ProcessIntrospectionData |
struct | ProcessIntrospectionFieldTopic |
the topic for the process introspection that a user can subscribe to More... | |
struct | DefaultRouDiMemory |
class | GenericMemoryBlock |
The GenericMemoryBlock is an implementation of a MemoryBlock for a common use case. More... | |
class | IceOryxRouDiMemoryManager |
class | MemoryBlock |
The MemoryBlock is a container for general purpose memory. It is used to request some memory from a MemoryProvider, which can be POSIX SHM, the stack or something completely different. To be able to use the container, some functions need to be implemented. For most use cases the GenericMemoryBlock can be used, which is a templated class and implements the most common case. More... | |
class | MemoryProvider |
This class creates memory which is requested by the MemoryBlocks. Once the memory is available, this is announced to the blocks, so that they can consume the memory for their needs. When the Memory is release, the blocks will also called to handle this appropriately, e.g. calling the destructor of the underlying type. This class is an interface with some default behavior and needs an implementation for real memory supply, e.g. a PosixShmMemoryProvider. More... | |
class | PosixShmMemoryProvider |
Creates the shared memory based on a provided configuration. More... | |
class | RouDiMemoryInterface |
class | RouDiMemoryManager |
class | PortPool |
class | RouDiApp |
base class for RouDi daemons More... | |
class | RouDiConfigFileProvider |
Base class for a config file provider. More... | |
Typedefs | |
using | ConfigFilePathString_t = cxx::string< 1024 > |
using | MemPoolIntrospectionType = MemPoolIntrospection< mepoo::MemoryManager, mepoo::SegmentManager<>, PublisherPortUserType > |
typedef for the templated mempool introspection class that is used by RouDi for the actual mempool introspection functionality. | |
using | PortIntrospectionType = PortIntrospection< PublisherPortUserType, SubscriberPortUserType > |
typedef for the templated port introspection class that is used by RouDi for the actual port introspection functionality. | |
using | ProcessIntrospectionType = ProcessIntrospection< PublisherPortUserType > |
typedef for the templated process introspection class that is used by RouDi for the actual process introspection functionality. | |
using | MemPoolInfoContainer = cxx::vector< MemPoolInfo, MAX_NUMBER_OF_MEMPOOLS > |
container for MemPoolInfo structs of all available mempools. | |
using | MemPoolIntrospectionInfoContainer = cxx::vector< MemPoolIntrospectionInfo, MAX_SHM_SEGMENTS+1 > |
container for MemPoolInfo structs of all available mempools. | |
using | SubscriberPortData = PortData |
Enumerations | |
enum class | MonitoringMode { ON , OFF } |
Controls process alive monitoring. Upon timeout, a monitored process is removed and its resources are made available. The process can then start and register itself again. Contrarily, unmonitored processes can be restarted but registration will fail. Once Runlevel Management is extended, it will detect absent processes. Those processes can register again. ON - all processes are monitored OFF - no process is monitored. | |
enum class | MemoryProviderError { INVALID_STATE , MEMORY_BLOCKS_EXHAUSTED , NO_MEMORY_BLOCKS_PRESENT , MEMORY_ALREADY_CREATED , MEMORY_CREATION_FAILED , PAGE_SIZE_CHECK_ERROR , MEMORY_ALIGNMENT_EXCEEDS_PAGE_SIZE , MEMORY_ALLOCATION_FAILED , MEMORY_MAPPING_FAILED , MEMORY_NOT_AVAILABLE , MEMORY_DESTRUCTION_FAILED , MEMORY_DEALLOCATION_FAILED , MEMORY_UNMAPPING_FAILED , SIGACTION_CALL_FAILED } |
enum class | RouDiMemoryManagerError { INVALID_STATE , MEMORY_PROVIDER_EXHAUSTED , NO_MEMORY_PROVIDER_PRESENT , MEMORY_CREATION_FAILED , MEMORY_DESTRUCTION_FAILED } |
enum class | PortPoolError : uint8_t { INVALID_STATE , UNIQUE_PUBLISHER_PORT_ALREADY_EXISTS , PUBLISHER_PORT_LIST_FULL , SUBSCRIBER_PORT_LIST_FULL , INTERFACE_PORT_LIST_FULL , APPLICATION_PORT_LIST_FULL , NODE_DATA_LIST_FULL , CONDITION_VARIABLE_LIST_FULL , EVENT_VARIABLE_LIST_FULL } |
enum class | RouDiConfigFileParseError { INVALID_STATE , NO_GENERAL_SECTION , INVALID_CONFIG_FILE_VERSION , NO_SEGMENTS , MAX_NUMBER_OF_SEGMENTS_EXCEEDED , SEGMENT_WITHOUT_MEMPOOL , MAX_NUMBER_OF_MEMPOOLS_PER_SEGMENT_EXCEEDED , MEMPOOL_WITHOUT_CHUNK_SIZE , MEMPOOL_WITHOUT_CHUNK_COUNT , EXCEPTION_IN_PARSER } |
This are the errors which can occur when a config file is parsed NO_GENERAL_SECTION - the section for general config was not found INVALID_CONFIG_FILE_VERSION - an invalid config file version was detected NO_SEGMENTS - at least one segment needs to be defined MAX_NUMBER_OF_SEGMENTS_EXCEEDED - max number of segments exceeded SEGMENT_WITHOUT_MEMPOOL - a segment must have at least one mempool MAX_NUMBER_OF_MEMPOOLS_PER_SEGMENT_EXCEEDED - the max number of mempools per segment is exceeded MEMPOOL_WITHOUT_CHUNK_SIZE - chunk size not specified for the mempool MEMPOOL_WITHOUT_CHUNK_COUNT - chunk count not specified for the mempool. | |
Functions | |
iox::log::LogStream & | operator<< (iox::log::LogStream &logstream, const MonitoringMode &mode) |
capro::Interfaces | StringToCaProInterface (const capro::IdString_t &str) noexcept |
iox::log::LogStream & | operator<< (iox::log::LogStream &logstream, const RouDiMemoryManagerError &error) |
Variables | |
constexpr const char | ROUDI_LOCK_NAME [] = "iox-unique-roudi" |
constexpr const char | IPC_CHANNEL_ROUDI_NAME [] = "roudi" |
constexpr const char | SHM_NAME [] = "/iceoryx_mgmt" |
shared memmory segment for the iceoryx managment data | |
constexpr units::Duration | PROCESS_DEFAULT_KILL_DELAY = 45_s |
constexpr units::Duration | PROCESS_TERMINATED_CHECK_INTERVAL = 250_ms |
constexpr units::Duration | DISCOVERY_INTERVAL = 100_ms |
constexpr const char | INTROSPECTION_SERVICE_ID [] = "Introspection" |
constexpr const char | INTROSPECTION_APP_NAME [] = "introspection" |
constexpr const char | INTROSPECTION_NODE_NAME [] = "introspection" |
const capro::ServiceDescription | IntrospectionMempoolService (INTROSPECTION_SERVICE_ID, "RouDi_ID", "MemPool") |
constexpr int | MAX_GROUP_NAME_LENGTH = 32 |
const capro::ServiceDescription | IntrospectionPortService (INTROSPECTION_SERVICE_ID, "RouDi_ID", "Port") |
publisher/subscriber port information consisting of a process name,a capro service description string and a node name | |
const capro::ServiceDescription | IntrospectionPortThroughputService (INTROSPECTION_SERVICE_ID, "RouDi_ID", "PortThroughput") |
const capro::ServiceDescription | IntrospectionSubscriberPortChangingDataService (INTROSPECTION_SERVICE_ID, "RouDi_ID", "SubscriberPortsData") |
const capro::ServiceDescription | IntrospectionProcessService (INTROSPECTION_SERVICE_ID, "RouDi_ID", "Process") |
constexpr const char * | ROUDI_CONFIG_FILE_PARSE_ERROR_STRINGS [] |
|
strong |
|
strong |
|
constexpr |