Class PosixShmMemoryProvider
Defined in File posix_shm_memory_provider.hpp
Inheritance Relationships
Base Type
public iox::roudi::MemoryProvider(Class MemoryProvider)
Class Documentation
-
class PosixShmMemoryProvider : public iox::roudi::MemoryProvider
Creates the shared memory based on a provided configuration.
Public Functions
-
PosixShmMemoryProvider(const ShmName_t &shmName, const posix::AccessMode accessMode, const posix::OpenMode openMode) noexcept
Constructs a PosixShmMemoryProvider which can be used to request memory via MemoryBlocks.
- Parameters:
shmName – [in] is the name of the posix share memory
accessMode – [in] defines the read and write access to the memory
openMode – [in] defines the creation/open mode of the shared memory.
-
~PosixShmMemoryProvider() noexcept
-
PosixShmMemoryProvider(PosixShmMemoryProvider&&) = delete
-
PosixShmMemoryProvider &operator=(PosixShmMemoryProvider&&) = delete
-
PosixShmMemoryProvider(const PosixShmMemoryProvider&) = delete
-
PosixShmMemoryProvider &operator=(const PosixShmMemoryProvider&) = delete
Protected Functions
-
virtual cxx::expected<void*, MemoryProviderError> createMemory(const uint64_t size, const uint64_t alignment) noexcept
This function needs to be implemented to provide the actual memory, e.g. in case of POSIX SHM, shm_open and mmap would need to be called in the implementation of this function.
Note
This creates and maps a POSIX shared memory to the address space of the application
- Parameters:
size – [in] is the size in bytes for the requested memory, the size should already be calculated according to the alignment requirements
alignment – [in] the required alignment for the memory
- Returns:
the pointer of the begin of the created memory or a MemoryProviderError if the memory could not be created
-
virtual cxx::expected<MemoryProviderError> destroyMemory() noexcept
This function needs to be implemented to free the actual memory, e.g. in case of POSIX SHM, shm_unlink and munmap would need to be called in the implementation of this function.
Note
This closes and unmaps a POSIX shared memory
- Returns:
a MemoryProviderError if the destruction failed, otherwise success
-
PosixShmMemoryProvider(const ShmName_t &shmName, const posix::AccessMode accessMode, const posix::OpenMode openMode) noexcept