31template <
typename T,
typename H = iox::mepoo::NoUserHeader,
typename BaseSubscriberType = BaseSubscriber<>>
32class SubscriberImpl :
public BaseSubscriberType
34 using SelfType = SubscriberImpl<T, H, BaseSubscriberType>;
36 using DataTypeAssert =
typename TypedPortApiTrait<T>::Assert;
37 using HeaderTypeAssert =
typename TypedPortApiTrait<H>::Assert;
42 SubscriberImpl(
const SubscriberImpl& other) =
delete;
43 SubscriberImpl& operator=(
const SubscriberImpl&) =
delete;
44 SubscriberImpl(SubscriberImpl&& rhs) =
delete;
45 SubscriberImpl& operator=(SubscriberImpl&& rhs) =
delete;
46 virtual ~SubscriberImpl()
noexcept;
54 cxx::expected<Sample<const T, const H>, ChunkReceiveResult>
take() noexcept;
56 using PortType = typename BaseSubscriberType::PortType;
57 using SubscriberSampleDeleter = SampleDeleter<PortType>;
60 using BaseSubscriberType::
port;
63 SubscriberSampleDeleter m_sampleDeleter{
port()};