Skip to content

iox::popo::BaseSubscriber🔗

base class for all types of subscriber More...

#include <iceoryx_posh/internal/popo/base_subscriber.hpp>

Inherited by iox::popo::SubscriberImpl< T, mepoo::NoUserHeader >, iox::popo::SubscriberImpl< T, H, BaseSubscriberType >, iox::popo::UntypedSubscriberImpl< BaseSubscriberType >

Protected Types🔗

Name
using BaseSubscriber< port_t > SelfType
Only usable by the WaitSet, not for public use. Invalidates the internal triggerHandle.
using port_t PortType

Public Functions🔗

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🔗

Name
BaseSubscriber()
BaseSubscriber(const capro::ServiceDescription & service, const SubscriberOptions & subscriberOptions)
BaseSubscriber(const BaseSubscriber & other)
BaseSubscriber & operator=(const BaseSubscriber & )
BaseSubscriber(BaseSubscriber && rhs)
BaseSubscriber & operator=(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🔗

Name
port_t m_port
TriggerHandle m_trigger

Friends🔗

Name
class NotificationAttorney
class iox::runtime::ServiceDiscovery

Detailed Description🔗

template <typename port_t  =iox::SubscriberPortUserType>
class iox::popo::BaseSubscriber;

base class for all types of subscriber

Parameters:

  • port_t type of the underlying port, required for testing

Note: Not intended for public usage! Use the [Subscriber](/v2.0.1/API-reference/posh/Classes/classiox_1_1popo_1_1Subscriber/) or [UntypedSubscriber](/v2.0.1/API-reference/posh/Classes/classiox_1_1popo_1_1UntypedSubscriber/) instead!

Protected Types Documentation🔗

using SelfType🔗

using iox::popo::BaseSubscriber< port_t >::SelfType =  BaseSubscriber<port_t>;

Only usable by the WaitSet, not for public use. Invalidates the internal triggerHandle.

Parameters:

  • uniqueTriggerId the id of the corresponding trigger

Only usable by the WaitSet, not for public use

using PortType🔗

using iox::popo::BaseSubscriber< port_t >::PortType =  port_t;

Public Functions Documentation🔗

function ~BaseSubscriber🔗

virtual ~BaseSubscriber()

function getUid🔗

uid_t getUid() const

uid Get the unique ID of the subscriber.

Return: The subscriber's unique ID.

function getServiceDescription🔗

capro::ServiceDescription getServiceDescription() const

getServiceDescription Get the service description of the subscriber.

Return: The service description.

function subscribe🔗

void subscribe()

subscribe Initiate subscription.

Return:

function getSubscriptionState🔗

SubscribeState getSubscriptionState() const

getSubscriptionState Get current subscription state.

Return: The current subscription state.

function unsubscribe🔗

void unsubscribe()

unsubscribe Unsubscribes if currently subscribed, otherwise do nothing.

function hasData🔗

bool hasData() const

Check if data is available.

Return: True if data is available.

function hasMissedData🔗

bool hasMissedData()

Check if data has been missed since the last call of this method.

Return: True if data has been missed.

Data may be missed due to overflowing receive queue.

function releaseQueuedData🔗

void releaseQueuedData()

Releases any unread queued data.

Protected Functions Documentation🔗

function BaseSubscriber🔗

BaseSubscriber()

function BaseSubscriber🔗

BaseSubscriber(
    const capro::ServiceDescription & service,
    const SubscriberOptions & subscriberOptions
)

function BaseSubscriber🔗

BaseSubscriber(
    const BaseSubscriber & other
)

function operator=🔗

BaseSubscriber & operator=(
    const BaseSubscriber & 
)

function BaseSubscriber🔗

BaseSubscriber(
    BaseSubscriber && rhs
)

function operator=🔗

BaseSubscriber & operator=(
    BaseSubscriber && rhs
)

function takeChunk🔗

cxx::expected< const mepoo::ChunkHeader *, ChunkReceiveResult > takeChunk()

small helper method to unwrap the expected<optional<ChunkHeader*>> from the tryGetChunk method of the port

function invalidateTrigger🔗

void invalidateTrigger(
    const uint64_t trigger
)

function enableState🔗

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.

Parameters:

  • triggerHandle rvalue reference to the triggerHandle. This class takes the ownership of that handle.
  • subscriberState the state which should be attached

function getCallbackForIsStateConditionSatisfied🔗

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.

Parameters:

  • subscriberState the state to which the hasTriggeredCallback is required

function disableState🔗

void disableState(
    const SubscriberState subscriberState
)

Only usable by the WaitSet, not for public use. Resets the internal triggerHandle.

Parameters:

  • subscriberState the state which should be detached

function enableEvent🔗

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.

Parameters:

  • triggerHandle rvalue reference to the triggerHandle. This class takes the ownership of that handle.
  • subscriberEvent the event which should be attached

function disableEvent🔗

void disableEvent(
    const SubscriberEvent subscriberEvent
)

Only usable by the WaitSet, not for public use. Resets the internal triggerHandle.

Parameters:

  • subscriberEvent the event which should be detached

function port🔗

const port_t & port() const

const accessor of the underlying port

function port🔗

port_t & port()

accessor of the underlying port

Protected Attributes Documentation🔗

variable m_port🔗

port_t m_port {nullptr};

variable m_trigger🔗

TriggerHandle m_trigger;

Friends🔗

friend NotificationAttorney🔗

friend class NotificationAttorney(
    NotificationAttorney 
);

friend iox::runtime::ServiceDiscovery🔗

friend class iox::runtime::ServiceDiscovery(
    iox::runtime::ServiceDiscovery 
);

Updated on 2 April 2022 at 16:37:47 CEST