Twitch SDK (Internal)
Public Member Functions | Private Attributes | List of all members
ttv::StandardConditionMutex Class Reference

#include <standardmutex.h>

Inheritance diagram for ttv::StandardConditionMutex:
ttv::IConditionMutex ttv::IMutex

Public Member Functions

 StandardConditionMutex ()
 
virtual ~StandardConditionMutex ()
 
virtual TTV_ErrorCode Lock () override
 
virtual TTV_ErrorCode TryLock () override
 
virtual TTV_ErrorCode Unlock () override
 
virtual TTV_ErrorCode Wait () override
 
virtual TTV_ErrorCode WaitFor (uint64_t timeoutMilliseconds) override
 
virtual TTV_ErrorCode Signal () override
 
virtual TTV_ErrorCode Broadcast () override
 

Private Attributes

std::mutex mMutex
 
std::condition_variable mCondition
 

Constructor & Destructor Documentation

◆ StandardConditionMutex()

ttv::StandardConditionMutex::StandardConditionMutex ( )

◆ ~StandardConditionMutex()

virtual ttv::StandardConditionMutex::~StandardConditionMutex ( )
virtual

Member Function Documentation

◆ Broadcast()

virtual TTV_ErrorCode ttv::StandardConditionMutex::Broadcast ( )
overridevirtual

Implements ttv::IConditionMutex.

◆ Lock()

virtual TTV_ErrorCode ttv::StandardConditionMutex::Lock ( )
overridevirtual

Block/wait until the mutex is free to take, and then acquire the mutex.

Returns
  • TTV_EC_SUCCESS: Mutex has been successfully acquired.

Implements ttv::IMutex.

◆ Signal()

virtual TTV_ErrorCode ttv::StandardConditionMutex::Signal ( )
overridevirtual

Implements ttv::IConditionMutex.

◆ TryLock()

virtual TTV_ErrorCode ttv::StandardConditionMutex::TryLock ( )
overridevirtual

Attempt to acquire the mutex, without waiting for the lock to be available.

Returns
  • TTV_EC_SUCCESS: Mutex has been successfully acquired.
  • TTV_WRN_MUTEX_NOT_ACQUIRED: Lock has failed and mutex has not been acquired.

Implements ttv::IMutex.

◆ Unlock()

virtual TTV_ErrorCode ttv::StandardConditionMutex::Unlock ( )
overridevirtual

Release the previously acquired mutex (through Lock()).

Returns
  • TTV_EC_SUCCESS: Mutex has been sucessfully released.

Implements ttv::IMutex.

◆ Wait()

virtual TTV_ErrorCode ttv::StandardConditionMutex::Wait ( )
overridevirtual

Wait on the IConditionMutex until notified to wake up (through Signal()/Broadcast()).

Returns
  • TTV_EC_SUCCESS: Waited sucessfully on the IConditionMutex.
  • TTV_WRN_CONDITION_WAIT_FAILED: Wait was not successful.

Implements ttv::IConditionMutex.

◆ WaitFor()

virtual TTV_ErrorCode ttv::StandardConditionMutex::WaitFor ( uint64_t  timeoutMilliseconds)
overridevirtual

Wait on the IConditionMutex until notified to wake up OR the timeout is reached.

Parameters
[in]timeoutMillisecondsThe timeout to wait in milliseconds.
Returns
  • TTV_EC_SUCCESS: Waited sucessfully on the IConditionMutex (and was notified through Signal()/Broadcast()).
  • TTV_WRN_WAIT_TIMEOUT: The timeout was hit while waiitng on IConditionMutex.
  • TTV_WRN_CONDITION_WAIT_FAILED: Wait was not successful.

Implements ttv::IConditionMutex.

Member Data Documentation

◆ mCondition

std::condition_variable ttv::StandardConditionMutex::mCondition
private

◆ mMutex

std::mutex ttv::StandardConditionMutex::mMutex
private

The documentation for this class was generated from the following file: