|
enum class | RuntimeMessagesThreadStart { IMMEDIATE
, DEFER_START
} |
| Indicate whether the thread processing messages from the runtimes will start directly or deferred this is important for derived classes which may need to initialize their members before the thread starts.
|
|
|
void | startProcessRuntimeMessagesThread () |
| Starts the thread processing messages from the runtimes Once this is done, applications can register and Roudi is fully operational.
|
|
void | shutdown () |
| Stops threads and kills all process known to RouDi Called in d'tor. More...
|
|
virtual void | processMessage (const runtime::IpcMessage &message, const iox::runtime::IpcMessageType &cmd, const RuntimeName_t &runtimeName) |
|
virtual void | cyclicUpdateHook () |
|
void | IpcMessageErrorHandler () |
|
version::VersionInfo | parseRegisterMessage (const runtime::IpcMessage &message, uint32_t &pid, uid_t &userId, int64_t &transmissionTimestamp) |
|
void | registerProcess (const RuntimeName_t &name, const uint32_t pid, const posix::PosixUser user, const int64_t transmissionTimestamp, const uint64_t sessionId, const version::VersionInfo &versionInfo) |
| Handles the registration request from process. More...
|
|
◆ getUniqueSessionIdForProcess()
static uint64_t iox::roudi::RouDi::getUniqueSessionIdForProcess |
( |
| ) |
|
|
staticprotected |
Creates a unique ID which can be used to check outdated IPC channel transmissions.
- Returns
- a unique, monotonic and consecutive increasing number
◆ registerProcess()
void iox::roudi::RouDi::registerProcess |
( |
const RuntimeName_t & |
name, |
|
|
const uint32_t |
pid, |
|
|
const posix::PosixUser |
user, |
|
|
const int64_t |
transmissionTimestamp, |
|
|
const uint64_t |
sessionId, |
|
|
const version::VersionInfo & |
versionInfo |
|
) |
| |
|
protected |
Handles the registration request from process.
- Parameters
-
[in] | name | of the process which wants to register at roudi; this is equal to the IPC channel name |
[in] | pid | is the host system process id |
[in] | user | is the posix user id to which the process belongs |
[in] | transmissionTimestamp | is an ID for the application to check for the expected response |
[in] | sessionId | is an ID generated by RouDi to prevent sending outdated IPC channel transmission |
[in] | versionInfo | Version of iceoryx used |
◆ shutdown()
void iox::roudi::RouDi::shutdown |
( |
| ) |
|
|
protected |
Stops threads and kills all process known to RouDi Called in d'tor.
- Note
- Intentionally not virtual to be able to call it in derived class
◆ m_roudiMemoryManagerCleaner
cxx::GenericRAII iox::roudi::RouDi::m_roudiMemoryManagerCleaner |
|
protected |
Initial value:{[]() {},
[this]() {
{
LogWarn() << "unable to cleanup roudi memory interface";
};
}}
virtual cxx::expected< RouDiMemoryManagerError > destroyMemory() noexcept=0
The RouDiMemoryManager calls the the MemoryProvider to destroy the memory, which in turn prompts the ...
- Note
- destroy the memory right at the end of the dTor, since the memory is not needed anymore and we know that the lifetime of the MemoryBlocks must be at least as long as RouDi; this saves us from issues if the RouDiMemoryManager outlives some MemoryBlocks
The documentation for this class was generated from the following file: