18#ifndef IOX_POSH_POPO_TYPED_SUBSCRIBER_IMPL_HPP
19#define IOX_POSH_POPO_TYPED_SUBSCRIBER_IMPL_HPP
21#include "iceoryx_posh/internal/popo/base_subscriber.hpp"
22#include "iceoryx_posh/internal/popo/sample_deleter.hpp"
23#include "iceoryx_posh/internal/popo/typed_port_api_trait.hpp"
31template <
typename T,
typename H = iox::mepoo::NoUserHeader,
typename BaseSubscriberType = BaseSubscriber<>>
36 using DataTypeAssert =
typename TypedPortApiTrait<T>::Assert;
37 using HeaderTypeAssert =
typename TypedPortApiTrait<H>::Assert;
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()};
69#include "iceoryx_posh/internal/popo/subscriber_impl.inl"
class for the identification of a communication event including information on the service,...
Definition service_description.hpp:81
const port_t & port() const noexcept
const accessor of the underlying port
The SubscriberImpl class implements the typed subscriber API.
Definition subscriber_impl.hpp:33
cxx::expected< Sample< const T, const H >, ChunkReceiveResult > take() noexcept
Take the samples from the top of the receive queue.
This struct is used to configure the subscriber.
Definition subscriber_options.hpp:33