Skip to content

iox::popo::SubscriberImpl🔗

More...

Inherits from iox::popo::BaseSubscriber<>

Public Types🔗

Name
using typename BaseSubscriber_t::PortType PortType
using SampleDeleter< PortType > SubscriberSampleDeleter

Public Functions🔗

Name
SubscriberImpl(const capro::ServiceDescription & service, const SubscriberOptions & subscriberOptions =SubscriberOptions())
SubscriberImpl(const SubscriberImpl & other)
SubscriberImpl & operator=(const SubscriberImpl & )
SubscriberImpl(SubscriberImpl && rhs)
SubscriberImpl & operator=(SubscriberImpl && rhs)
virtual ~SubscriberImpl()
cxx::expected< Sample< const T, const H >, ChunkReceiveResult > take()
Take the samples from the top of the receive queue.

Additional inherited members🔗

Public Functions inherited from iox::popo::BaseSubscriber<>

Name
virtual ~BaseSubscriber()
uid_t getUid() const
uid Get the unique ID of the subscriber.
capro::ServiceDescription getServiceDescription() const
getServiceDescription Get the service description of the subscriber.
void subscribe()
subscribe Initiate subscription.
SubscribeState getSubscriptionState() const
getSubscriptionState Get current subscription state.
void unsubscribe()
unsubscribe Unsubscribes if currently subscribed, otherwise do nothing.
bool hasData() const
Check if data is available.
bool hasMissedData()
Check if data has been missed since the last call of this method.
void releaseQueuedData()
Releases any unread queued data.

Protected Functions inherited from iox::popo::BaseSubscriber<>

Name
BaseSubscriber()
BaseSubscriber(const capro::ServiceDescription & service, const SubscriberOptions & subscriberOptions)
BaseSubscriber(const BaseSubscriber & other)
BaseSubscriber(BaseSubscriber && rhs)
cxx::expected< const mepoo::ChunkHeader *, ChunkReceiveResult > takeChunk()
small helper method to unwrap the expected<optional<ChunkHeader*>> from the tryGetChunk method of the port
void invalidateTrigger(const uint64_t trigger)
void enableState(iox::popo::TriggerHandle && triggerHandle, const SubscriberState subscriberState)
Only usable by the WaitSet, not for public use. Attaches the triggerHandle to the internal trigger.
WaitSetIsConditionSatisfiedCallback getCallbackForIsStateConditionSatisfied(const SubscriberState subscriberState) const
Only usable by the WaitSet, not for public use. Returns method pointer to the event corresponding hasTriggered method callback.
void disableState(const SubscriberState subscriberState)
Only usable by the WaitSet, not for public use. Resets the internal triggerHandle.
void enableEvent(iox::popo::TriggerHandle && triggerHandle, const SubscriberEvent subscriberState)
Only usable by the WaitSet, not for public use. Attaches the triggerHandle to the internal trigger.
void disableEvent(const SubscriberEvent subscriberEvent)
Only usable by the WaitSet, not for public use. Resets the internal triggerHandle.
const port_t & port() const
const accessor of the underlying port
port_t & port()
accessor of the underlying port

Protected Attributes inherited from iox::popo::BaseSubscriber<>

Name
port_t m_port
TriggerHandle m_trigger

Friends inherited from iox::popo::BaseSubscriber<>

Name
class NotificationAttorney

Detailed Description🔗

template <typename T ,
typename H  =iox::mepoo::NoUserHeader,
typename BaseSubscriber_t  =BaseSubscriber<>>
class iox::popo::SubscriberImpl;

Public Types Documentation🔗

using PortType🔗

using iox::popo::SubscriberImpl< T, H, BaseSubscriber_t >::PortType =  typename BaseSubscriber_t::PortType;

using SubscriberSampleDeleter🔗

using iox::popo::SubscriberImpl< T, H, BaseSubscriber_t >::SubscriberSampleDeleter =  SampleDeleter<PortType>;

Public Functions Documentation🔗

function SubscriberImpl🔗

inline SubscriberImpl(
    const capro::ServiceDescription & service,
    const SubscriberOptions & subscriberOptions =SubscriberOptions()
)

function SubscriberImpl🔗

SubscriberImpl(
    const SubscriberImpl & other
)

function operator=🔗

SubscriberImpl & operator=(
    const SubscriberImpl & 
)

function SubscriberImpl🔗

SubscriberImpl(
    SubscriberImpl && rhs
)

function operator=🔗

SubscriberImpl & operator=(
    SubscriberImpl && rhs
)

function ~SubscriberImpl🔗

inline virtual ~SubscriberImpl()

function take🔗

inline cxx::expected< Sample< const T, const H >, ChunkReceiveResult > take()

Take the samples from the top of the receive queue.

Return: Either a sample or a ChunkReceiveResult.

The sample takes care of the cleanup. Don't store the raw pointer to the content of the sample, but always the whole sample.


Updated on 17 June 2021 at 11:15:27 CEST