Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
BlockOrWakeUp< Critical >::CriticalHolder Struct Reference

RAII class for holding a critical section lock. More...

#include <BlockOrWakeUp.hxx>

Public Member Functions

 CriticalHolder (CriticalHolder &&o)
 Move constructor for the RAII object.
 

Private Member Functions

 CriticalHolder (BlockOrWakeUp< Critical > *parent)
 Upgrades a lock to a critical section.
 

Private Attributes

BlockOrWakeUp< Critical > * parent_
 Pointer to parent.
 

Friends

class LockHolder
 

Detailed Description

template<class Critical>
struct BlockOrWakeUp< Critical >::CriticalHolder

RAII class for holding a critical section lock.

Definition at line 84 of file BlockOrWakeUp.hxx.

Constructor & Destructor Documentation

◆ ~CriticalHolder()

template<class Critical >
BlockOrWakeUp< Critical >::CriticalHolder::~CriticalHolder ( )
inline

Definition at line 86 of file BlockOrWakeUp.hxx.

◆ CriticalHolder() [1/2]

template<class Critical >
BlockOrWakeUp< Critical >::CriticalHolder::CriticalHolder ( CriticalHolder &&  o)
inline

Move constructor for the RAII object.

Parameters
oc++ movable object.

Definition at line 93 of file BlockOrWakeUp.hxx.

◆ CriticalHolder() [2/2]

template<class Critical >
BlockOrWakeUp< Critical >::CriticalHolder::CriticalHolder ( BlockOrWakeUp< Critical > *  parent)
inlineprivate

Upgrades a lock to a critical section.

This is private so that we can only get a new holder from a LockHolder.

Parameters
parentrepresents whose lock we are holding.

Definition at line 104 of file BlockOrWakeUp.hxx.

Friends And Related Symbol Documentation

◆ LockHolder

template<class Critical >
friend class LockHolder
friend

Definition at line 100 of file BlockOrWakeUp.hxx.

Member Data Documentation

◆ parent_

template<class Critical >
BlockOrWakeUp<Critical>* BlockOrWakeUp< Critical >::CriticalHolder::parent_
private

Pointer to parent.

Definition at line 111 of file BlockOrWakeUp.hxx.


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