iceoryx_doc  1.0.1
Public Types | Public Member Functions | List of all members
iox::roudi::ProcessManager Class Reference
Inheritance diagram for iox::roudi::ProcessManager:
Inheritance graph
[legend]
Collaboration diagram for iox::roudi::ProcessManager:
Collaboration graph
[legend]

Public Types

enum class  TerminationFeedback { SEND_ACK_TO_PROCESS , DO_NOT_SEND_ACK_TO_PROCESS }
 
using ProcessList_t = cxx::list< Process, MAX_PROCESS_NUMBER >
 
using PortConfigInfo = iox::runtime::PortConfigInfo
 

Public Member Functions

 ProcessManager (RouDiMemoryInterface &roudiMemoryInterface, PortManager &portManager, const version::CompatibilityCheckLevel compatibilityCheckLevel) noexcept
 
 ProcessManager (const ProcessManager &other)=delete
 
ProcessManageroperator= (const ProcessManager &other)=delete
 
bool registerProcess (const RuntimeName_t &name, const uint32_t pid, const posix::PosixUser user, const bool isMonitored, const int64_t transmissionTimestamp, const uint64_t sessionId, const version::VersionInfo &versionInfo) noexcept
 Registers a process at the ProcessManager. More...
 
bool unregisterProcess (const RuntimeName_t &name) noexcept
 Unregisters a process at the ProcessManager. More...
 
void killAllProcesses () noexcept
 Kills all registered processes. If RouDi doesn't have sufficient rights to kill the process, the process is considered killed.
 
void printWarningForRegisteredProcessesAndClearProcessList () noexcept
 Informs the user about the processes which are registered and then clears the process list.
 
bool isAnyRegisteredProcessStillRunning () noexcept
 Is one or more of the registered processes running? More...
 
void handleProcessShutdownPreparationRequest (const RuntimeName_t &name) noexcept
 A process is about to shut down and needs to be unblock by a potentially block publisher. More...
 
void requestShutdownOfAllProcesses () noexcept
 Tries to gracefully terminate all registered processes.
 
void updateLivelinessOfProcess (const RuntimeName_t &name) noexcept
 
void findServiceForProcess (const RuntimeName_t &name, const capro::ServiceDescription &service) noexcept
 
void addInterfaceForProcess (const RuntimeName_t &name, capro::Interfaces interface, const NodeName_t &node) noexcept
 
void addApplicationForProcess (const RuntimeName_t &name) noexcept
 
void addNodeForProcess (const RuntimeName_t &process, const NodeName_t &node) noexcept
 
void addSubscriberForProcess (const RuntimeName_t &name, const capro::ServiceDescription &service, const popo::SubscriberOptions &subscriberOptions, const PortConfigInfo &portConfigInfo=PortConfigInfo()) noexcept
 
void addPublisherForProcess (const RuntimeName_t &name, const capro::ServiceDescription &service, const popo::PublisherOptions &publisherOptions, const PortConfigInfo &portConfigInfo=PortConfigInfo()) noexcept
 
void addConditionVariableForProcess (const RuntimeName_t &runtimeName) noexcept
 
void initIntrospection (ProcessIntrospectionType *processIntrospection) noexcept
 
void run () noexcept
 
popo::PublisherPortDataaddIntrospectionPublisherPort (const capro::ServiceDescription &service, const RuntimeName_t &process_name) noexcept
 
void sendMessageNotSupportedToRuntime (const RuntimeName_t &name) noexcept
 Notify the application that it sent an unsupported message.
 
void sendServiceRegistryChangeCounterToProcess (const RuntimeName_t &process_name) noexcept override
 

Member Function Documentation

◆ handleProcessShutdownPreparationRequest()

void iox::roudi::ProcessManager::handleProcessShutdownPreparationRequest ( const RuntimeName_t &  name)
noexcept

A process is about to shut down and needs to be unblock by a potentially block publisher.

Parameters
[in]nameof the process runtime which is about to shut down

◆ isAnyRegisteredProcessStillRunning()

bool iox::roudi::ProcessManager::isAnyRegisteredProcessStillRunning ( )
noexcept

Is one or more of the registered processes running?

Returns
true if one or more of the registered processes is running, false otherwise

◆ registerProcess()

bool iox::roudi::ProcessManager::registerProcess ( const RuntimeName_t &  name,
const uint32_t  pid,
const posix::PosixUser  user,
const bool  isMonitored,
const int64_t  transmissionTimestamp,
const uint64_t  sessionId,
const version::VersionInfo &  versionInfo 
)
noexcept

Registers a process at the ProcessManager.

Parameters
[in]nameof the process which wants to register
[in]pidis the host system process id
[in]useris the posix user id to which the process belongs
[in]isMonitoredindicates if the process should be monitored for being alive
[in]transmissionTimestampis an ID for the application to check for the expected response
[in]sessionIdis an ID generated by RouDi to prevent sending outdated IPC channel transmission
[in]versionInfoVersion of iceoryx used
Returns
false if process was already registered, true otherwise

◆ unregisterProcess()

bool iox::roudi::ProcessManager::unregisterProcess ( const RuntimeName_t &  name)
noexcept

Unregisters a process at the ProcessManager.

Parameters
[in]nameof the process which wants to unregister
Returns
true if known process was unregistered, false if process is unknown

The documentation for this class was generated from the following file: