18#ifndef IOX_POSH_POPO_SAMPLE_HPP
19#define IOX_POSH_POPO_SAMPLE_HPP
21#include "iceoryx_hoofs/cxx/type_traits.hpp"
22#include "iceoryx_hoofs/cxx/unique_ptr.hpp"
23#include "iceoryx_posh/internal/log/posh_logging.hpp"
24#include "iceoryx_posh/internal/popo/smart_chunk.hpp"
25#include "iceoryx_posh/mepoo/chunk_header.hpp"
31template <
typename T,
typename H>
36template <
typename T,
typename H = cxx::add_const_conditionally_t<mepoo::NoUserHeader, T>>
37class Sample :
public SmartChunk<PublisherInterface<T, H>, T, H>
39 using BaseType = SmartChunk<PublisherInterface<T, H>, T, H>;
42 template <
typename T1,
typename T2>
43 using ForPublisherOnly =
typename BaseType::template ForProducerOnly<T1, T2>;
50 using BaseType::BaseType;
54 using BaseType::getUserHeader;
59 template <
typename S = T,
typename = ForPublisherOnly<S, T>>
63 template <typename, typename, typename>
68 using BaseType::release;
70 using BaseType::m_members;
76#include "iceoryx_posh/internal/popo/sample.inl"
The PublisherImpl class implements the typed publisher API.
Definition: publisher_impl.hpp:35
Definition: sample.hpp:32
The Sample class is a mutable abstraction over types which are written to loaned shared memory....
Definition: sample.hpp:38
void publish() noexcept
Publish the sample via the publisher from which it was loaned and automatically release ownership to ...