[][src]Struct qt_core::QReadLocker

#[repr(C)]pub struct QReadLocker { /* fields omitted */ }

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access.

C++ class: QReadLocker.

C++ documentation:

The QReadLocker class is a convenience class that simplifies locking and unlocking read-write locks for read access.

The purpose of QReadLocker (and QWriteLocker) is to simplify QReadWriteLock locking and unlocking. Locking and unlocking statements or in exception handling code is error-prone and difficult to debug. QReadLocker can be used in such situations to ensure that the state of the lock is always well-defined.

Here's an example that uses QReadLocker to lock and unlock a read-write lock for reading:

QReadWriteLock lock;

QByteArray readData() { QReadLocker locker(&lock); ... return data; }

It is equivalent to the following code:

QReadWriteLock lock;

QByteArray readData() { lock.lockForRead(); ... lock.unlock(); return data; }

The QMutexLocker documentation shows examples where the use of a locker object greatly simplifies programming.

Methods

impl QReadLocker[src]

pub unsafe fn new(
    read_write_lock: impl CastInto<Ptr<QReadWriteLock>>
) -> CppBox<QReadLocker>
[src]

Constructs a QReadLocker and locks lock for reading. The lock will be unlocked when the QReadLocker is destroyed. If lock is zero, QReadLocker does nothing.

Calls C++ function: [constructor] void QReadLocker::QReadLocker(QReadWriteLock* readWriteLock).

C++ documentation:

Constructs a QReadLocker and locks lock for reading. The lock will be unlocked when the QReadLocker is destroyed. If lock is zero, QReadLocker does nothing.

See also QReadWriteLock::lockForRead().

pub unsafe fn read_write_lock(&self) -> Ptr<QReadWriteLock>[src]

Returns a pointer to the read-write lock that was passed to the constructor.

Calls C++ function: QReadWriteLock* QReadLocker::readWriteLock() const.

C++ documentation:

Returns a pointer to the read-write lock that was passed to the constructor.

pub unsafe fn relock(&self)[src]

Relocks an unlocked lock.

Calls C++ function: void QReadLocker::relock().

C++ documentation:

Relocks an unlocked lock.

See also unlock().

pub unsafe fn unlock(&self)[src]

Unlocks the lock associated with this locker.

Calls C++ function: void QReadLocker::unlock().

C++ documentation:

Unlocks the lock associated with this locker.

See also QReadWriteLock::unlock().

Trait Implementations

impl CppDeletable for QReadLocker[src]

unsafe fn delete(&self)[src]

Destroys the QReadLocker and unlocks the lock that was passed to the constructor.

Calls C++ function: [destructor] void QReadLocker::~QReadLocker().

C++ documentation:

Destroys the QReadLocker and unlocks the lock that was passed to the constructor.

See also QReadWriteLock::unlock().

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T, U> CastInto<U> for T where
    U: CastFrom<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> StaticUpcast<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.