Skip to content

iox::popo::UntypedSubscriberImpl🔗

More...

Inherits from iox::popo::BaseSubscriber<>

Public Types🔗

Name
using BaseSubscriber_t BaseSubscriber
using UntypedSubscriberImpl< BaseSubscriber_t > SelfType

Public Functions🔗

Name
UntypedSubscriberImpl(const capro::ServiceDescription & service, const SubscriberOptions & subscriberOptions =SubscriberOptions())
UntypedSubscriberImpl(const UntypedSubscriberImpl & other)
UntypedSubscriberImpl & operator=(const UntypedSubscriberImpl & )
UntypedSubscriberImpl(UntypedSubscriberImpl && rhs)
UntypedSubscriberImpl & operator=(UntypedSubscriberImpl && rhs)
virtual ~UntypedSubscriberImpl()
cxx::expected< const void *, ChunkReceiveResult > take()
Take the chunk from the top of the receive queue.
void release(const void *const userPayload)
Releases the ownership of the chunk provided by the user-payload pointer.

Additional inherited members🔗

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

Name
using port_t PortType

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
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 BaseSubscriber_t  =BaseSubscriber<>>
class iox::popo::UntypedSubscriberImpl;

Public Types Documentation🔗

using BaseSubscriber🔗

using iox::popo::UntypedSubscriberImpl< BaseSubscriber_t >::BaseSubscriber =  BaseSubscriber_t;

using SelfType🔗

using iox::popo::UntypedSubscriberImpl< BaseSubscriber_t >::SelfType =  UntypedSubscriberImpl<BaseSubscriber_t>;

Public Functions Documentation🔗

function UntypedSubscriberImpl🔗

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

function UntypedSubscriberImpl🔗

UntypedSubscriberImpl(
    const UntypedSubscriberImpl & other
)

function operator=🔗

UntypedSubscriberImpl & operator=(
    const UntypedSubscriberImpl & 
)

function UntypedSubscriberImpl🔗

UntypedSubscriberImpl(
    UntypedSubscriberImpl && rhs
)

function operator=🔗

UntypedSubscriberImpl & operator=(
    UntypedSubscriberImpl && rhs
)

function ~UntypedSubscriberImpl🔗

inline virtual ~UntypedSubscriberImpl()

function take🔗

inline cxx::expected< const void *, ChunkReceiveResult > take()

Take the chunk from the top of the receive queue.

Return: The user-payload pointer of the chunk taken.

No automatic cleanup of the associated chunk is performed and must be manually done by calling release

function release🔗

inline void release(
    const void *const userPayload
)

Releases the ownership of the chunk provided by the user-payload pointer.

Parameters:

  • userPayload pointer to the user-payload of the chunk to be released

The userPayload pointer must have been previously provided by take and not have been already released. The chunk must not be accessed afterwards as its memory may have been reclaimed.


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