The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
LockedHandle< T, MutexType >::Guard Class Reference

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/LockedHandle.h>

Public Member Functions

 Guard (Guard &&a)
 
 Guard (T *ptr, MutexType &mutex)
 
 ~Guard ()
 
T & operator* ()
 
T * operator-> ()
 
 operator T& ()
 

Private Member Functions

 Guard (const Guard &a)=delete
 

Private Attributes

T * m_ptr { nullptr }
 
MutexType * m_mutex { nullptr }
 

Detailed Description

template<class T, class MutexType = std::mutex>
class LockedHandle< T, MutexType >::Guard

Definition at line 52 of file LockedHandle.h.

Constructor & Destructor Documentation

◆ Guard() [1/3]

template<class T, class MutexType = std::mutex>
LockedHandle< T, MutexType >::Guard::Guard ( const Guard & a)
privatedelete

◆ Guard() [2/3]

template<class T, class MutexType = std::mutex>
LockedHandle< T, MutexType >::Guard::Guard ( Guard && a)
inline

Definition at line 56 of file LockedHandle.h.

56: m_ptr( a.m_ptr ), m_mutex( a.m_mutex ) { a.m_mutex = nullptr; }
MutexType * m_mutex
Provides automatic lock/unlock access to a class upon deref of ptr.
MutexType * m_mutex

◆ Guard() [3/3]

template<class T, class MutexType = std::mutex>
LockedHandle< T, MutexType >::Guard::Guard ( T * ptr,
MutexType & mutex )
inline

Definition at line 58 of file LockedHandle.h.

58: m_ptr( ptr ), m_mutex( &mutex ) { m_mutex->lock(); }

◆ ~Guard()

template<class T, class MutexType = std::mutex>
LockedHandle< T, MutexType >::Guard::~Guard ( )
inline

Definition at line 59 of file LockedHandle.h.

59{ m_mutex->unlock(); }

Member Function Documentation

◆ operator T&()

template<class T, class MutexType = std::mutex>
LockedHandle< T, MutexType >::Guard::operator T& ( )
inline

Definition at line 63 of file LockedHandle.h.

63{ return *m_ptr; }

◆ operator*()

template<class T, class MutexType = std::mutex>
T & LockedHandle< T, MutexType >::Guard::operator* ( )
inline

Definition at line 60 of file LockedHandle.h.

60{ return *m_ptr; }

◆ operator->()

template<class T, class MutexType = std::mutex>
T * LockedHandle< T, MutexType >::Guard::operator-> ( )
inline

Definition at line 61 of file LockedHandle.h.

61{ return m_ptr; }

Member Data Documentation

◆ m_mutex

template<class T, class MutexType = std::mutex>
MutexType* LockedHandle< T, MutexType >::Guard::m_mutex { nullptr }
private

Definition at line 67 of file LockedHandle.h.

67{ nullptr };

◆ m_ptr

template<class T, class MutexType = std::mutex>
T* LockedHandle< T, MutexType >::Guard::m_ptr { nullptr }
private

Definition at line 66 of file LockedHandle.h.

66{ nullptr };

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