QReadLocker Class Reference

QReadLocker Class Reference

#include <qreadwritelock.h>

Class Description

Definition at line 89 of file qreadwritelock.h.

Public Member Functions

 QReadLocker (QReadWriteLock *readWriteLock)
 
 ~QReadLocker ()
 
void unlock ()
 
void relock ()
 
QReadWriteLockreadWriteLock () const
 

Constructor & Destructor Documentation

QReadLocker ( QReadWriteLock readWriteLock)
inline

Definition at line 125 of file qreadwritelock.h.

126  : q_val(reinterpret_cast<quintptr>(areadWriteLock))
127 {
128  Q_ASSERT_X((q_val & quintptr(1u)) == quintptr(0),
129  "QReadLocker", "QReadWriteLock pointer is misaligned");
130  relock();
131 }
~QReadLocker ( )
inline

Definition at line 94 of file qreadwritelock.h.

95  { unlock(); }

Member Function Documentation

void unlock ( )
inline

Definition at line 97 of file qreadwritelock.h.

98  {
99  if (q_val) {
100  if ((q_val & quintptr(1u)) == quintptr(1u)) {
101  q_val &= ~quintptr(1u);
102  readWriteLock()->unlock();
103  }
104  }
105  }
QReadWriteLock * readWriteLock() const
void relock ( )
inline

Definition at line 107 of file qreadwritelock.h.

108  {
109  if (q_val) {
110  if ((q_val & quintptr(1u)) == quintptr(0u)) {
112  q_val |= quintptr(1u);
113  }
114  }
115  }
void lockForRead()
QReadWriteLock * readWriteLock() const
QReadWriteLock* readWriteLock ( ) const
inline

Definition at line 117 of file qreadwritelock.h.

118  { return reinterpret_cast<QReadWriteLock *>(q_val & ~quintptr(1u)); }

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