Template Class SegmentManager

Nested Relationships

Nested Types

Class Documentation

template<typename SegmentType = MePooSegment<>>
class SegmentManager

Public Types

using SegmentMappingContainer = cxx::vector<SegmentMapping, MAX_SHM_SEGMENTS>

Public Functions

SegmentManager(const SegmentConfig &segmentConfig, posix::Allocator *managementAllocator) noexcept
~SegmentManager() noexcept = default
SegmentManager(const SegmentManager &rhs) = delete
SegmentManager(SegmentManager &&rhs) = delete
SegmentManager &operator=(const SegmentManager &rhs) = delete
SegmentManager &operator=(SegmentManager &&rhs) = delete
SegmentMappingContainer getSegmentMappings(const posix::PosixUser &user) noexcept
SegmentUserInformation getSegmentInformationWithWriteAccessForUser(const posix::PosixUser &user) noexcept

Public Static Functions

static uint64_t requiredManagementMemorySize(const SegmentConfig &config) noexcept
static uint64_t requiredChunkMemorySize(const SegmentConfig &config) noexcept
static uint64_t requiredFullMemorySize(const SegmentConfig &config) noexcept

Friends

friend class roudi::MemPoolIntrospection
struct SegmentMapping

Public Functions

inline SegmentMapping(const ShmName_t &sharedMemoryName, const void *const startAddress, uint64_t size, bool isWritable, uint64_t segmentId, const iox::mepoo::MemoryInfo &memoryInfo = iox::mepoo::MemoryInfo()) noexcept

Public Members

ShmName_t m_sharedMemoryName = {""}
const void *m_startAddress = {nullptr}
uint64_t m_size = {0}
bool m_isWritable = {false}
uint64_t m_segmentId = {0}
iox::mepoo::MemoryInfo m_memoryInfo
struct SegmentUserInformation

Public Members

cxx::optional<std::reference_wrapper<MemoryManager>> m_memoryManager
uint64_t m_segmentID