iox::roudi::ProcessManager🔗
Inherits from iox::roudi::ProcessManagerInterface
Public Types🔗
Name | |
---|---|
enum | TerminationFeedback |
using cxx::list< Process, MAX_PROCESS_NUMBER > | ProcessList_t |
using iox::runtime::PortConfigInfo | PortConfigInfo |
Public Functions🔗
Name | |
---|---|
ProcessManager(RouDiMemoryInterface & roudiMemoryInterface, PortManager & portManager, const version::CompatibilityCheckLevel compatibilityCheckLevel) | |
virtual | ~ProcessManager() override =default |
ProcessManager(const ProcessManager & other) | |
ProcessManager & | operator=(const ProcessManager & other) |
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) Registers a process at the ProcessManager. |
bool | unregisterProcess(const RuntimeName_t & name) Unregisters a process at the ProcessManager. |
void | killAllProcesses() Kills all registered processes. If RouDi doesn't have sufficient rights to kill the process, the process is considered killed. |
void | printWarningForRegisteredProcessesAndClearProcessList() Informs the user about the processes which are registered and then clears the process list. |
bool | isAnyRegisteredProcessStillRunning() Is one or more of the registered processes running? |
void | handleProcessShutdownPreparationRequest(const RuntimeName_t & name) A process is about to shut down and needs to be unblock by a potentially block publisher. |
void | requestShutdownOfAllProcesses() Tries to gracefully terminate all registered processes. |
void | updateLivelinessOfProcess(const RuntimeName_t & name) |
void | findServiceForProcess(const RuntimeName_t & name, const capro::ServiceDescription & service) |
void | addInterfaceForProcess(const RuntimeName_t & name, capro::Interfaces interface, const NodeName_t & node) |
void | addApplicationForProcess(const RuntimeName_t & name) |
void | addNodeForProcess(const RuntimeName_t & process, const NodeName_t & node) |
void | addSubscriberForProcess(const RuntimeName_t & name, const capro::ServiceDescription & service, const popo::SubscriberOptions & subscriberOptions, const PortConfigInfo & portConfigInfo =PortConfigInfo()) |
void | addPublisherForProcess(const RuntimeName_t & name, const capro::ServiceDescription & service, const popo::PublisherOptions & publisherOptions, const PortConfigInfo & portConfigInfo =PortConfigInfo()) |
void | addConditionVariableForProcess(const RuntimeName_t & runtimeName) |
void | initIntrospection(ProcessIntrospectionType * processIntrospection) |
void | run() |
popo::PublisherPortData * | addIntrospectionPublisherPort(const capro::ServiceDescription & service, const RuntimeName_t & process_name) |
void | sendMessageNotSupportedToRuntime(const RuntimeName_t & name) Notify the application that it sent an unsupported message. |
virtual void | sendServiceRegistryChangeCounterToProcess(const RuntimeName_t & process_name) override |
Additional inherited members🔗
Public Functions inherited from iox::roudi::ProcessManagerInterface
Name | |
---|---|
virtual | ~ProcessManagerInterface() =default |
Public Types Documentation🔗
enum TerminationFeedback🔗
Enumerator | Value | Description |
---|---|---|
SEND_ACK_TO_PROCESS | ||
DO_NOT_SEND_ACK_TO_PROCESS |
using ProcessList_t🔗
using iox::roudi::ProcessManager::ProcessList_t = cxx::list<Process, MAX_PROCESS_NUMBER>;
using PortConfigInfo🔗
using iox::roudi::ProcessManager::PortConfigInfo = iox::runtime::PortConfigInfo;
Public Functions Documentation🔗
function ProcessManager🔗
ProcessManager(
RouDiMemoryInterface & roudiMemoryInterface,
PortManager & portManager,
const version::CompatibilityCheckLevel compatibilityCheckLevel
)
function ~ProcessManager🔗
virtual ~ProcessManager() override =default
function ProcessManager🔗
ProcessManager(
const ProcessManager & other
)
function operator=🔗
ProcessManager & operator=(
const ProcessManager & other
)
function registerProcess🔗
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
)
Registers a process at the ProcessManager.
Parameters:
- name of the process which wants to register
- pid is the host system process id
- user is the posix user id to which the process belongs
- isMonitored indicates if the process should be monitored for being alive
- transmissionTimestamp is an ID for the application to check for the expected response
- sessionId is an ID generated by RouDi to prevent sending outdated IPC channel transmission
- versionInfo Version of iceoryx used
Return: false if process was already registered, true otherwise
function unregisterProcess🔗
bool unregisterProcess(
const RuntimeName_t & name
)
Unregisters a process at the ProcessManager.
Parameters:
- name of the process which wants to unregister
Return: true if known process was unregistered, false if process is unknown
function killAllProcesses🔗
void killAllProcesses()
Kills all registered processes. If RouDi doesn't have sufficient rights to kill the process, the process is considered killed.
function printWarningForRegisteredProcessesAndClearProcessList🔗
void printWarningForRegisteredProcessesAndClearProcessList()
Informs the user about the processes which are registered and then clears the process list.
function isAnyRegisteredProcessStillRunning🔗
bool isAnyRegisteredProcessStillRunning()
Is one or more of the registered processes running?
Return: true if one or more of the registered processes is running, false otherwise
function handleProcessShutdownPreparationRequest🔗
void handleProcessShutdownPreparationRequest(
const RuntimeName_t & name
)
A process is about to shut down and needs to be unblock by a potentially block publisher.
Parameters:
- name of the process runtime which is about to shut down
function requestShutdownOfAllProcesses🔗
void requestShutdownOfAllProcesses()
Tries to gracefully terminate all registered processes.
function updateLivelinessOfProcess🔗
void updateLivelinessOfProcess(
const RuntimeName_t & name
)
function findServiceForProcess🔗
void findServiceForProcess(
const RuntimeName_t & name,
const capro::ServiceDescription & service
)
function addInterfaceForProcess🔗
void addInterfaceForProcess(
const RuntimeName_t & name,
capro::Interfaces interface,
const NodeName_t & node
)
function addApplicationForProcess🔗
void addApplicationForProcess(
const RuntimeName_t & name
)
function addNodeForProcess🔗
void addNodeForProcess(
const RuntimeName_t & process,
const NodeName_t & node
)
function addSubscriberForProcess🔗
void addSubscriberForProcess(
const RuntimeName_t & name,
const capro::ServiceDescription & service,
const popo::SubscriberOptions & subscriberOptions,
const PortConfigInfo & portConfigInfo =PortConfigInfo()
)
function addPublisherForProcess🔗
void addPublisherForProcess(
const RuntimeName_t & name,
const capro::ServiceDescription & service,
const popo::PublisherOptions & publisherOptions,
const PortConfigInfo & portConfigInfo =PortConfigInfo()
)
function addConditionVariableForProcess🔗
void addConditionVariableForProcess(
const RuntimeName_t & runtimeName
)
function initIntrospection🔗
void initIntrospection(
ProcessIntrospectionType * processIntrospection
)
function run🔗
void run()
function addIntrospectionPublisherPort🔗
popo::PublisherPortData * addIntrospectionPublisherPort(
const capro::ServiceDescription & service,
const RuntimeName_t & process_name
)
function sendMessageNotSupportedToRuntime🔗
void sendMessageNotSupportedToRuntime(
const RuntimeName_t & name
)
Notify the application that it sent an unsupported message.
function sendServiceRegistryChangeCounterToProcess🔗
virtual void sendServiceRegistryChangeCounterToProcess(
const RuntimeName_t & process_name
) override
Reimplements: iox::roudi::ProcessManagerInterface::sendServiceRegistryChangeCounterToProcess
Updated on 31 May 2022 at 15:29:16 CEST