17 #ifndef IOX_POSH_POPO_BUILDING_BLOCKS_CONDITION_LISTENER_HPP
18 #define IOX_POSH_POPO_BUILDING_BLOCKS_CONDITION_LISTENER_HPP
20 #include "iceoryx_posh/internal/popo/building_blocks/condition_variable_data.hpp"
21 #include "iceoryx_posh/mepoo/memory_info.hpp"
22 #include "iceoryx_utils/cxx/helplets.hpp"
32 using NotificationVector_t = cxx::vector<cxx::BestFittingType_t<MAX_NUMBER_OF_NOTIFIERS_PER_CONDITION_VARIABLE>,
33 MAX_NUMBER_OF_NOTIFIERS_PER_CONDITION_VARIABLE>;
57 NotificationVector_t
wait() noexcept;
66 NotificationVector_t
timedWait(const units::Duration& timeToWait) noexcept;
73 void reset(const uint64_t index) noexcept;
74 void resetSemaphore() noexcept;
76 NotificationVector_t waitImpl(const cxx::function_ref<
bool()>& waitCall) noexcept;
80 std::atomic_bool m_toBeDestroyed{
false};
ConditionListener allows one to wait using a shared memory condition variable.
Definition: condition_listener.hpp:30
NotificationVector_t timedWait(const units::Duration &timeToWait) noexcept
returns a sorted vector of indices of active notifications; blocking for the specified time if Condit...
NotificationVector_t wait() noexcept
returns a sorted vector of indices of active notifications; blocking if ConditionVariableData was not...
void destroy() noexcept
Used in classes to signal a thread which waits in wait() to return and stop working....
bool wasNotified() const noexcept
Was the ConditionListener notified by a ConditionNotifier?
Definition: service_description.hpp:29
Definition: condition_variable_data.hpp:31