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 <iceoryx_posh/popo/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 |
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 >
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
Public Attributes Documentation🔗
variable INVALID_TRIGGER_ID🔗
static constexpr uint64_t INVALID_TRIGGER_ID = std::numeric_limits<uint64_t>::max();
Updated on 18 December 2023 at 13:11:43 CET