1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsreadwritelocker.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsReadWriteLocker
{
%Docstring(signature="appended")
The :py:class:`QgsReadWriteLocker` class is a convenience class that
simplifies locking and unlocking QReadWriteLocks.
Locking and unlocking a QReadWriteLocks in complex functions and
statements or in exception handling code is error-prone and difficult to
debug. :py:class:`QgsReadWriteLocker` can be used in such situations to
ensure that the state of the lock is always well-defined.
:py:class:`QgsReadWriteLocker` should be created within a function where
a QReadWriteLock needs to be locked. The lock may be locked when
:py:class:`QgsReadWriteLocker` is created or when changeMode is called.
You can unlock and relock the lock with :py:func:`~unlock` and
:py:func:`~changeMode`. If locked, the lock will be unlocked when the
:py:class:`QgsReadWriteLocker` is destroyed.
.. versionadded:: 3.4
%End
%TypeHeaderCode
#include "qgsreadwritelocker.h"
%End
public:
enum Mode
{
Read,
Write,
Unlocked
};
QgsReadWriteLocker( QReadWriteLock &lock, Mode mode );
%Docstring
Create a new QgsReadWriteLocker for ``lock`` and initialize in ``mode``.
%End
void changeMode( Mode mode );
%Docstring
Change the mode of the lock to ``mode``. The lock will be unlocked and
relocked as required.
%End
void unlock();
%Docstring
Unlocks the lock. Equivalent to doing ``changeMode(
QgsReadWriteLocker.Unlock );``
%End
~QgsReadWriteLocker();
private:
QgsReadWriteLocker &operator=( const QgsReadWriteLocker & );
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsreadwritelocker.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
|