5 #ifndef OS_CONDITIONVARIABLEINTERFACE_HPP_ 6 #define OS_CONDITIONVARIABLEINTERFACE_HPP_ 13 #include "config/OsSelection.hpp" 18 class DelegateConditionVariable;
23 static_assert(std::is_same<Os::Mutex, Os::DelegateMutex>::value ==
24 std::is_same<Os::ConditionVariable, Os::DelegateConditionVariable>::value,
25 "Os::Mutex and Os::ConditionVariable must be overridden together in config/OsSelection.hpp");
109 static_cast<FwAssertArgType>(reinterpret_cast<PlatformPointerCastType>(
this)), status);
115 #endif // OS_CONDITIONVARIABLEINTERFACE_HPP_ ConditionVariable does not support operation.
ConditionVariableInterface()=default
Default constructor.
virtual Status pend(Os::Mutex &mutex)=0
wait on a condition variable
Link-time delegating Mutex implementation.
virtual void notifyAll()=0
notify all waiters on this condition variable
U8 ConditionVariableHandleStorage[FW_CONDITION_VARIABLE_HANDLE_MAX_SIZE]
virtual ~ConditionVariableInterface()=default
Default destructor.
When trying to wait but we don't hold the mutex.
virtual ConditionVariableHandle * getHandle()=0
return the underlying condition variable handle (implementation specific).
virtual ConditionVariableInterface & operator=(const ConditionVariableInterface &other)=delete
assignment operator is forbidden
interface for condition variables
static ConditionVariableInterface * getDelegate(ConditionVariableHandleStorage &aligned_new_memory)
provide a pointer to a ConditionVariable delegate object
virtual void notify()=0
notify a single waiter on this condition variable
When trying to use a different mutex than expected mutex.
Condition variable handle parent.
Operation was successful.
void wait(Os::Mutex &mutex)
wait on a condition variable and assert success
When trying to use a feature that isn't implemented.