16 #ifndef IOX_POSH_ROUDI_INTROSPECTION_MEMPOOL_INTROSPECTION_HPP
17 #define IOX_POSH_ROUDI_INTROSPECTION_MEMPOOL_INTROSPECTION_HPP
19 #include "iceoryx_posh/internal/log/posh_logging.hpp"
20 #include "iceoryx_posh/internal/mepoo/memory_manager.hpp"
21 #include "iceoryx_posh/internal/roudi/port_manager.hpp"
22 #include "iceoryx_posh/mepoo/mepoo_config.hpp"
23 #include "iceoryx_posh/roudi/introspection_types.hpp"
24 #include "iceoryx_utils/cxx/method_callback.hpp"
25 #include "iceoryx_utils/internal/concurrent/periodic_task.hpp"
38 template <
typename MemoryManager,
typename SegmentManager,
typename PublisherPort>
48 SegmentManager& segmentManager,
49 PublisherPort&& publisherPort);
74 MemoryManager* m_rouDiInternalMemoryManager{
nullptr};
75 SegmentManager* m_segmentManager{
nullptr};
76 PublisherPort m_publisherPort{
nullptr};
81 const posix::PosixGroup& readerGroup,
82 const posix::PosixGroup& writerGroup,
83 uint32_t
id) noexcept;
89 units::Duration m_sendInterval{units::Duration::fromSeconds(1U)};
90 concurrent::PeriodicTask<cxx::MethodCallback<void>> m_publishingTask{
91 concurrent::PeriodicTaskManualStart,
"MemPoolIntr", *
this, &MemPoolIntrospection::send};
101 #include "mempool_introspection.inl"
The PublisherPortUser provides the API for accessing a publisher port from the user side....
Definition: publisher_port_user.hpp:39
This class handles the mempool intropection for RouDi. It is recommended to use the MemPoolIntrospect...
Definition: mempool_introspection.hpp:40
void stop() noexcept
This function stops the thread which sends the introspection data. It is not possible to start the th...
Definition: mempool_introspection.inl:51
void setSendInterval(const units::Duration interval) noexcept
This function configures the interval for the transmission of the mempool introspection data.
Definition: mempool_introspection.inl:57
MemPoolIntrospection(MemoryManager &rouDiInternalMemoryManager, SegmentManager &segmentManager, PublisherPort &&publisherPort)
The constructor for the MemPoolIntrospection. It starts a thread and set it into a wait condition.
Definition: mempool_introspection.inl:28
void run() noexcept
This function starts the periodic transmission of snapshots of the mempool introspecton data....
Definition: mempool_introspection.inl:45
cxx::vector< MemPoolInfo, MAX_NUMBER_OF_MEMPOOLS > MemPoolInfoContainer
container for MemPoolInfo structs of all available mempools.
Definition: introspection_types.hpp:48
Definition: service_description.hpp:29
the topic for the mempool introspection that a user can subscribe to
Definition: introspection_types.hpp:52