Skip to content

iox::popo::Trigger🔗

The Trigger class is usually managed by a factory class like a WaitSet and acquired by classes which would like to signal a notification. Multiple Trigger can share a common ConditionVariableData pointer so that multiple Trigger can signal a single instance.

#include <trigger.hpp>

Public Functions🔗

Name
Trigger()
Trigger(const Trigger & )
Trigger & operator=(const Trigger & )
template \<typename T ,typename UserType >
Trigger(StateBasedTrigger_t , T *const stateOrigin, const cxx::ConstMethodCallback< bool > & hasTriggeredCallback, const cxx::MethodCallback< void, uint64_t > & resetCallback, const uint64_t notificationId, const NotificationCallback< T, UserType > & callback, const uint64_t uniqueId, const uint64_t stateType, const uint64_t stateTypeHash)
Creates a state based Trigger.
template \<typename T ,typename UserType >
Trigger(EventBasedTrigger_t , T *const notificationOrigin, const cxx::MethodCallback< void, uint64_t > & resetCallback, const uint64_t notificationId, const NotificationCallback< T, UserType > & callback, const uint64_t uniqueId, const uint64_t notificationType, const uint64_t notificationTypeHash)
Creates an event based Trigger.
Trigger(Trigger && rhs)
Trigger & operator=(Trigger && rhs)
~Trigger()
calls reset on destruction
operator bool() const
returns true if the Trigger is valid otherwise false A trigger is valid when:
bool isValid() const
returns true if the trigger is valid otherwise false
bool isStateConditionSatisfied() const
returns the result of the provided hasTriggeredCallback
void reset()
resets and invalidates the Trigger
void invalidate()
invalidates the Trigger without calling the reset callback
uint64_t getUniqueId() const
returns the internal unique id of the trigger
bool isLogicalEqualTo(const void *const notificationOrigin, const uint64_t originTriggerType, const uint64_t originTriggerTypeHash) const
returns true if the Triggers are logical equal otherwise false. Two Triggers are logical equal when
template \<typename T >
void
updateOrigin(T & newOrigin)
sets a new origin of the trigger
const NotificationInfo & getNotificationInfo() const
returns the NotificationInfo
TriggerType getTriggerType() const
returns the type of trigger
template \<typename T ,typename ContextDataType >
Trigger(StateBasedTrigger_t , T *const stateOrigin, const cxx::ConstMethodCallback< bool > & hasTriggeredCallback, const cxx::MethodCallback< void, uint64_t > & resetCallback, const uint64_t notificationId, const NotificationCallback< T, ContextDataType > & callback, const uint64_t uniqueId, const uint64_t stateType, const uint64_t stateTypeHash)
template \<typename T ,typename ContextDataType >
Trigger(EventBasedTrigger_t , T *const notificationOrigin, const cxx::MethodCallback< void, uint64_t > & resetCallback, const uint64_t notificationId, const NotificationCallback< T, ContextDataType > & callback, const uint64_t uniqueId, const uint64_t notificationType, const uint64_t notificationTypeHash)

Public Attributes🔗

Name
constexpr uint64_t INVALID_TRIGGER_ID

Public Functions Documentation🔗

function Trigger🔗

Trigger()

function Trigger🔗

Trigger(
    const Trigger & 
)

function operator=🔗

Trigger & operator=(
    const Trigger & 
)

function Trigger🔗

template <typename T ,
typename UserType >
Trigger(
    StateBasedTrigger_t ,
    T *const stateOrigin,
    const cxx::ConstMethodCallback< bool > & hasTriggeredCallback,
    const cxx::MethodCallback< void, uint64_t > & resetCallback,
    const uint64_t notificationId,
    const NotificationCallback< T, UserType > & callback,
    const uint64_t uniqueId,
    const uint64_t stateType,
    const uint64_t stateTypeHash
)

Creates a state based Trigger.

Parameters:

  • StateBasedTrigger_t signals that we are creating a state based trigger
  • stateOrigin pointer to the class where the signal originates from, if it's set to nullptr the Trigger is in a defined but invalid state
  • hasTriggeredCallback callback to a method which informs the trigger if it was triggered or not. If an empty callback is set the trigger is in a defined but invalid state.
  • resetCallback callback which is called when the trigger goes out of scope.
  • notificationId id of the corresponding event/state
  • callback function pointer of type void(*)(T * const) to a callback which can be called by the trigger.
  • uniqueId a context wide unique id to identify the trigger
  • stateType the uint64_t value of the state origins state enum
  • stateTypeHash the uint64_t type hash of the state enum

function Trigger🔗

template <typename T ,
typename UserType >
Trigger(
    EventBasedTrigger_t ,
    T *const notificationOrigin,
    const cxx::MethodCallback< void, uint64_t > & resetCallback,
    const uint64_t notificationId,
    const NotificationCallback< T, UserType > & callback,
    const uint64_t uniqueId,
    const uint64_t notificationType,
    const uint64_t notificationTypeHash
)

Creates an event based Trigger.

Parameters:

  • EventBasedTrigger_t signals that we are creating an event based trigger
  • notificationOrigin pointer to the class where the signal originates from, if it's set to nullptr the Trigger is in a defined but invalid state
  • resetCallback callback which is called when the trigger goes out of scope.
  • notificationId id of the corresponding event
  • callback function pointer of type void(*)(T * const) to a callback which can be called by the trigger.
  • uniqueId a context wide unique id to identify the trigger
  • notificationType the uint64_t value of the events origins event enum
  • notificationTypeHash the uint64_t type hash of the event enum

function Trigger🔗

Trigger(
    Trigger && rhs
)

function operator=🔗

Trigger & operator=(
    Trigger && rhs
)

function ~Trigger🔗

~Trigger()

calls reset on destruction

function operator bool🔗

explicit operator bool() const

returns true if the Trigger is valid otherwise false A trigger is valid when:

  • origin != nullptr
  • hasTriggeredCallback is set

function isValid🔗

bool isValid() const

returns true if the trigger is valid otherwise false

function isStateConditionSatisfied🔗

bool isStateConditionSatisfied() const

returns the result of the provided hasTriggeredCallback

Note: an event based trigger returns always true when it's valid

function reset🔗

void reset()

resets and invalidates the Trigger

function invalidate🔗

void invalidate()

invalidates the Trigger without calling the reset callback

function getUniqueId🔗

uint64_t getUniqueId() const

returns the internal unique id of the trigger

function isLogicalEqualTo🔗

bool isLogicalEqualTo(
    const void *const notificationOrigin,
    const uint64_t originTriggerType,
    const uint64_t originTriggerTypeHash
) const

returns true if the Triggers are logical equal otherwise false. Two Triggers are logical equal when

  • both Trigger are valid
  • origin == rhs.origin
  • originTriggerType == rhs.originTriggerType
  • originTriggerTypeHash == rhs.originTriggerTypeHash

function updateOrigin🔗

template <typename T >
inline void updateOrigin(
    T & newOrigin
)

sets a new origin of the trigger

Parameters:

  • newOrigin reference to the new origin

function getNotificationInfo🔗

const NotificationInfo & getNotificationInfo() const

returns the NotificationInfo

function getTriggerType🔗

TriggerType getTriggerType() const

returns the type of trigger

function Trigger🔗

template <typename T ,
typename ContextDataType >
inline Trigger(
    StateBasedTrigger_t ,
    T *const stateOrigin,
    const cxx::ConstMethodCallback< bool > & hasTriggeredCallback,
    const cxx::MethodCallback< void, uint64_t > & resetCallback,
    const uint64_t notificationId,
    const NotificationCallback< T, ContextDataType > & callback,
    const uint64_t uniqueId,
    const uint64_t stateType,
    const uint64_t stateTypeHash
)

function Trigger🔗

template <typename T ,
typename ContextDataType >
inline Trigger(
    EventBasedTrigger_t ,
    T *const notificationOrigin,
    const cxx::MethodCallback< void, uint64_t > & resetCallback,
    const uint64_t notificationId,
    const NotificationCallback< T, ContextDataType > & callback,
    const uint64_t uniqueId,
    const uint64_t notificationType,
    const uint64_t notificationTypeHash
)

Public Attributes Documentation🔗

variable INVALID_TRIGGER_ID🔗

static constexpr uint64_t INVALID_TRIGGER_ID = std::numeric_limits<uint64_t>::max();

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