DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer Class Reference

Only one instance of this class is allowed for synchronizing calls to connected qutools time taggers. This is required since TDC_addressDevice() selects a single device globally. More...

+ Inheritance diagram for DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer:

Static Public Member Functions

static LockType Lock (const std::chrono::milliseconds Timeout=std::chrono::milliseconds(100))
 

Private Member Functions

 QutoolsTDCSynchronizer ()=default
 
 ~QutoolsTDCSynchronizer ()=default
 

Static Private Member Functions

static QutoolsTDCSynchronizerGetInstance () noexcept
 

Additional Inherited Members

- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 
- Static Public Attributes inherited from Util::ILockable
static constexpr std::chrono::milliseconds DefaultTimeout = std::chrono::milliseconds(10)
 Duration which is used as a default timeout within all methods of this class if no different duration is passed to them. More...
 
- Protected Types inherited from Util::ILockable
using MutexType = std::timed_mutex
 
using LockType = std::unique_lock< MutexType >
 
- Protected Member Functions inherited from Util::ILockable
 ILockable ()=default
 
 ~ILockable ()=default
 
LockType AcquireLock (const std::chrono::milliseconds Timeout=DefaultTimeout) const
 Locks the internal mutex. Blocks until the mutex is locked or until the timeout duration is exceeded. More...
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

Only one instance of this class is allowed for synchronizing calls to connected qutools time taggers. This is required since TDC_addressDevice() selects a single device globally.

Warning
Always lock the mutex of QutoolsTDCHardwareAdapter (by a call to Util::ILockable::AcquireLock()) before the QutoolsTDCSynchronizer (by a call to QutoolsTDCSynchronizer::Lock()).

Definition at line 93 of file HardwareAdapterQutoolsTDC.h.

Constructor & Destructor Documentation

◆ QutoolsTDCSynchronizer()

DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer::QutoolsTDCSynchronizer ( )
privatedefault

◆ ~QutoolsTDCSynchronizer()

DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer::~QutoolsTDCSynchronizer ( )
privatedefault

Member Function Documentation

◆ GetInstance()

QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer & DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer::GetInstance ( )
staticprivatenoexcept

Definition at line 63 of file HardwareAdapterQutoolsTDC.cpp.

◆ Lock()

QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer::LockType DynExpHardware::QutoolsTDCHardwareAdapter::QutoolsTDCSynchronizer::Lock ( const std::chrono::milliseconds  Timeout = std::chrono::milliseconds(100))
static

Definition at line 57 of file HardwareAdapterQutoolsTDC.cpp.


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