Class Process

Class Documentation

class Process

Public Functions

Process(const RuntimeName_t &name, const uint32_t pid, const posix::PosixUser &user, const bool isMonitored, const uint64_t sessionId) noexcept

This class represents an application which has registered at RouDi and manages the communication to the application.

Parameters:
  • name[in] of the process; this is equal to the IPC channel name, which is used for communication

  • pid[in] is the host system process id

  • user[in] is user used in the operating system for this process

  • isMonitored[in] indicates if the process should be monitored for being alive

  • dataSegmentId[in] is an identifier for the shm data segment

  • sessionId[in] is an ID generated by RouDi to prevent sending outdated IPC channel transmission

Process(const Process &other) = delete
Process &operator=(const Process &other) = delete
Process(Process &&other) = delete

Note

the move cTor and assignment operator are already implicitly deleted because of the atomic

Process &operator=(Process &&other) = delete
~Process() noexcept = default
uint32_t getPid() const noexcept
const RuntimeName_t getName() const noexcept
void sendViaIpcChannel(const runtime::IpcMessage &data) noexcept
uint64_t getSessionId() noexcept

The session ID which is used to check outdated IPC channel transmissions for this process.

Returns:

the session ID for this process

void setTimestamp(const mepoo::TimePointNs_t timestamp) noexcept
mepoo::TimePointNs_t getTimestamp() noexcept
posix::PosixUser getUser() const noexcept
bool isMonitored() const noexcept