17 #ifndef IOX_POSH_MEPOO_MEPOO_SEGMENT_HPP
18 #define IOX_POSH_MEPOO_MEPOO_SEGMENT_HPP
20 #include "iceoryx_posh/internal/mepoo/memory_manager.hpp"
21 #include "iceoryx_posh/mepoo/memory_info.hpp"
22 #include "iceoryx_posh/mepoo/mepoo_config.hpp"
23 #include "iceoryx_utils/internal/posix_wrapper/access_control.hpp"
24 #include "iceoryx_utils/internal/posix_wrapper/shared_memory_object.hpp"
25 #include "iceoryx_utils/internal/posix_wrapper/shared_memory_object/allocator.hpp"
26 #include "iceoryx_utils/posix_wrapper/posix_access_rights.hpp"
32 template <
typename SharedMemoryObjectType = posix::SharedMemoryObject,
typename MemoryManagerType = MemoryManager>
37 posix::Allocator& managementAllocator,
38 const posix::PosixGroup& readerGroup,
39 const posix::PosixGroup& writerGroup,
42 posix::PosixGroup getWriterGroup()
const noexcept;
43 posix::PosixGroup getReaderGroup()
const noexcept;
44 const SharedMemoryObjectType& getSharedMemoryObject()
const noexcept;
45 MemoryManagerType& getMemoryManager() noexcept;
47 uint64_t getSegmentId()
const noexcept;
50 SharedMemoryObjectType createSharedMemoryObject(
const MePooConfig& mempoolConfig,
51 const posix::PosixGroup& writerGroup) noexcept;
54 SharedMemoryObjectType m_sharedMemoryObject;
55 MemoryManagerType m_memoryManager;
56 posix::PosixGroup m_readerGroup;
57 posix::PosixGroup m_writerGroup;
62 void setSegmentId(
const uint64_t segmentId) noexcept;
67 #include "iceoryx_posh/internal/mepoo/mepoo_segment.inl"
Definition: mepoo_segment.hpp:34
Definition: service_description.hpp:29
Definition: mepoo_config.hpp:33
Stores properties of the memory to be used when we distinguish between different types of memory on e...
Definition: memory_info.hpp:28