Doc: Fix qdoc compilation errors qtbase
Task-number: QTBUG-79824 Change-Id: I6557de598de1931fc30556951d35783d02b83abe Reviewed-by: Paul Wicking <paul.wicking@qt.io>
This commit is contained in:
parent
3162345670
commit
5a660353ed
@ -5407,7 +5407,7 @@
|
|||||||
\li The exit code of the test will be ignored during \c{make check}.
|
\li The exit code of the test will be ignored during \c{make check}.
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
Testcases will often be written with \l{QTest} or \l{TestCase}, but
|
Test cases will often be written with \l{QTest} or \l[QML]{TestCase}, but
|
||||||
that is not a requirement to make use of \c{CONFIG+=testcase} and \c{make check}.
|
that is not a requirement to make use of \c{CONFIG+=testcase} and \c{make check}.
|
||||||
The only primary requirement is that the test program exit with a zero exit code
|
The only primary requirement is that the test program exit with a zero exit code
|
||||||
on success, and a non-zero exit code on failure.
|
on success, and a non-zero exit code on failure.
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
\include module-use.qdocinc using qt module
|
\include module-use.qdocinc using qt module
|
||||||
\quotefile overview/using-qt-core.cmake
|
\quotefile overview/using-qt-core.cmake
|
||||||
|
|
||||||
See also the \l[QtDoc]{Building with CMake} overview.
|
See also the \l[QtDoc]{Build with CMake} overview.
|
||||||
|
|
||||||
\section2 Building with qmake
|
\section2 Building with qmake
|
||||||
|
|
||||||
|
@ -189,13 +189,13 @@
|
|||||||
XML file to indicate a file should be most compressed, regardless of
|
XML file to indicate a file should be most compressed, regardless of
|
||||||
which algorithms \c rcc supports.
|
which algorithms \c rcc supports.
|
||||||
|
|
||||||
\li \c{zstd}: use the \l{Zstandard}{https://zstd.net} library to compress
|
\li \c{zstd}: use the \l{https://zstd.net}{Zstandard} library to compress
|
||||||
contents. Valid compression levels range from 1 to 19, 1 is least
|
contents. Valid compression levels range from 1 to 19, 1 is least
|
||||||
compression (least CPU time) and 19 is the most compression (most CPU
|
compression (least CPU time) and 19 is the most compression (most CPU
|
||||||
time). The default level is 14. A special value of 0 tells the \c{zstd}
|
time). The default level is 14. A special value of 0 tells the \c{zstd}
|
||||||
library to choose an implementation-defined default.
|
library to choose an implementation-defined default.
|
||||||
|
|
||||||
\li \c{zlib}: use the \l{zlib}{https://zlib.net} library to compress
|
\li \c{zlib}: use the \l{https://zlib.net}{zlib} library to compress
|
||||||
contents. Valid compression levels range from 1 to 9, with 1the least
|
contents. Valid compression levels range from 1 to 9, with 1the least
|
||||||
compression (least CPU time) and 9 the most compression (most CPU time).
|
compression (least CPU time) and 9 the most compression (most CPU time).
|
||||||
The special value 0 means "no compression" and should not be used. The
|
The special value 0 means "no compression" and should not be used. The
|
||||||
|
@ -137,7 +137,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
\sa qToLittleEndian()
|
\sa qToLittleEndian()
|
||||||
*/
|
*/
|
||||||
/*!
|
/*!
|
||||||
\fn template <typename T> T qFromLittleEndian(const void *src)
|
\fn template <typename T> inline T qFromLittleEndian(const void *src)
|
||||||
\since 4.3
|
\since 4.3
|
||||||
\relates <QtEndian>
|
\relates <QtEndian>
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
\sa qToLittleEndian()
|
\sa qToLittleEndian()
|
||||||
*/
|
*/
|
||||||
/*!
|
/*!
|
||||||
\fn template <typename T> T qFromLittleEndian(T src)
|
\fn template <typename T> inline T qFromLittleEndian(T src)
|
||||||
\since 4.3
|
\since 4.3
|
||||||
\relates <QtEndian>
|
\relates <QtEndian>
|
||||||
\overload
|
\overload
|
||||||
@ -171,7 +171,7 @@ QT_BEGIN_NAMESPACE
|
|||||||
unmodified.
|
unmodified.
|
||||||
*/
|
*/
|
||||||
/*!
|
/*!
|
||||||
\fn template <typename T> T qFromLittleEndian(const void *src, qsizetype count, void *dest)
|
\fn template <typename T> inline T qFromLittleEndian(const void *src, qsizetype count, void *dest)
|
||||||
\since 5.12
|
\since 5.12
|
||||||
\relates <QtEndian>
|
\relates <QtEndian>
|
||||||
|
|
||||||
|
@ -280,9 +280,9 @@ static inline QStringList *resourceSearchPaths()
|
|||||||
RCC tool used to compress the payload.
|
RCC tool used to compress the payload.
|
||||||
|
|
||||||
\value NoCompression Contents are not compressed
|
\value NoCompression Contents are not compressed
|
||||||
\value ZlibCompression Contents are compressed using \l{zlib}{https://zlib.net} and can
|
\value ZlibCompression Contents are compressed using \l{https://zlib.net}{zlib} and can
|
||||||
be decompressed using the qUncompress() function.
|
be decompressed using the qUncompress() function.
|
||||||
\value ZstdCompression Contents are compressed using \l{zstd}{https://zstd.net}. To
|
\value ZstdCompression Contents are compressed using \l{https://zstd.net}{zstd}. To
|
||||||
decompress, use the \c{ZSTD_decompress} function from the zstd
|
decompress, use the \c{ZSTD_decompress} function from the zstd
|
||||||
library.
|
library.
|
||||||
|
|
||||||
|
@ -234,22 +234,26 @@
|
|||||||
\sa QAtomicPointer
|
\sa QAtomicPointer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn QAtomicInt::QAtomicInt(int value)
|
/*!
|
||||||
|
\fn QAtomicInt::QAtomicInt(int value)
|
||||||
|
|
||||||
Constructs a QAtomicInt with the given \a value.
|
Constructs a QAtomicInt with the given \a value.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn QAtomicInteger<T>::QAtomicInteger(T value)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicInteger<T>::QAtomicInteger(T value)
|
||||||
|
|
||||||
Constructs a QAtomicInteger with the given \a value.
|
Constructs a QAtomicInteger with the given \a value.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> QAtomicInteger<T>::QAtomicInteger(const QAtomicInteger &other)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicInteger<T>::QAtomicInteger(const QAtomicInteger &other)
|
||||||
|
|
||||||
Constructs a copy of \a other.
|
Constructs a copy of \a other.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> QAtomicInteger &QAtomicInteger<T>::operator=(const QAtomicInteger &other)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicInteger &QAtomicInteger<T>::operator=(const QAtomicInteger &other)
|
||||||
|
|
||||||
Assigns \a other to this QAtomicInteger and returns a reference to
|
Assigns \a other to this QAtomicInteger and returns a reference to
|
||||||
this QAtomicInteger.
|
this QAtomicInteger.
|
||||||
@ -344,19 +348,22 @@
|
|||||||
\sa storeRelaxed(), storeRelease()
|
\sa storeRelaxed(), storeRelease()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isReferenceCountingNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isReferenceCountingNative()
|
||||||
|
|
||||||
Returns \c true if reference counting is implemented using atomic
|
Returns \c true if reference counting is implemented using atomic
|
||||||
processor instructions, false otherwise.
|
processor instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isReferenceCountingWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isReferenceCountingWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic reference counting is wait-free, false
|
Returns \c true if atomic reference counting is wait-free, false
|
||||||
otherwise.
|
otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::ref()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::ref()
|
||||||
Atomically increments the value of this QAtomicInteger. Returns \c true
|
Atomically increments the value of this QAtomicInteger. Returns \c true
|
||||||
if the new value is non-zero, false otherwise.
|
if the new value is non-zero, false otherwise.
|
||||||
|
|
||||||
@ -394,7 +401,8 @@
|
|||||||
\sa ref(), operator++(), operator--(int)
|
\sa ref(), operator++(), operator--(int)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::deref()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::deref()
|
||||||
Atomically decrements the value of this QAtomicInteger. Returns \c true
|
Atomically decrements the value of this QAtomicInteger. Returns \c true
|
||||||
if the new value is non-zero, false otherwise.
|
if the new value is non-zero, false otherwise.
|
||||||
|
|
||||||
@ -432,18 +440,21 @@
|
|||||||
\sa deref(), operator--(), operator++(int)
|
\sa deref(), operator--(), operator++(int)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isTestAndSetNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isTestAndSetNative()
|
||||||
|
|
||||||
Returns \c true if test-and-set is implemented using atomic processor
|
Returns \c true if test-and-set is implemented using atomic processor
|
||||||
instructions, false otherwise.
|
instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isTestAndSetWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isTestAndSetWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic test-and-set is wait-free, false otherwise.
|
Returns \c true if atomic test-and-set is wait-free, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::testAndSetRelaxed(T expectedValue, T newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::testAndSetRelaxed(T expectedValue, T newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -457,7 +468,8 @@
|
|||||||
processor to freely reorder memory accesses.
|
processor to freely reorder memory accesses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::testAndSetAcquire(T expectedValue, T newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::testAndSetAcquire(T expectedValue, T newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -472,7 +484,8 @@
|
|||||||
be re-ordered before the atomic operation.
|
be re-ordered before the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::testAndSetRelease(T expectedValue, T newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::testAndSetRelease(T expectedValue, T newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -487,7 +500,8 @@
|
|||||||
re-ordered after the atomic operation.
|
re-ordered after the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::testAndSetOrdered(T expectedValue, T newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::testAndSetOrdered(T expectedValue, T newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -502,19 +516,22 @@
|
|||||||
may not be re-ordered.
|
may not be re-ordered.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isFetchAndStoreNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isFetchAndStoreNative()
|
||||||
|
|
||||||
Returns \c true if fetch-and-store is implemented using atomic
|
Returns \c true if fetch-and-store is implemented using atomic
|
||||||
processor instructions, false otherwise.
|
processor instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isFetchAndStoreWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isFetchAndStoreWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic fetch-and-store is wait-free, false
|
Returns \c true if atomic fetch-and-store is wait-free, false
|
||||||
otherwise.
|
otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndStoreRelaxed(T newValue)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndStoreRelaxed(T newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -526,7 +543,8 @@
|
|||||||
processor to freely reorder memory accesses.
|
processor to freely reorder memory accesses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndStoreAcquire(T newValue)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndStoreAcquire(T newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -539,7 +557,8 @@
|
|||||||
be re-ordered before the atomic operation.
|
be re-ordered before the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndStoreRelease(T newValue)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndStoreRelease(T newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -552,7 +571,8 @@
|
|||||||
re-ordered after the atomic operation.
|
re-ordered after the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndStoreOrdered(T newValue)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndStoreOrdered(T newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -565,19 +585,22 @@
|
|||||||
may not be re-ordered.
|
may not be re-ordered.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isFetchAndAddNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isFetchAndAddNative()
|
||||||
|
|
||||||
Returns \c true if fetch-and-add is implemented using atomic
|
Returns \c true if fetch-and-add is implemented using atomic
|
||||||
processor instructions, false otherwise.
|
processor instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicInteger<T>::isFetchAndAddWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicInteger<T>::isFetchAndAddWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic fetch-and-add is wait-free, false
|
Returns \c true if atomic fetch-and-add is wait-free, false
|
||||||
otherwise.
|
otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAddRelaxed(T valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAddRelaxed(T valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -591,7 +614,8 @@
|
|||||||
\sa operator+=(), fetchAndSubRelaxed()
|
\sa operator+=(), fetchAndSubRelaxed()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAddAcquire(T valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAddAcquire(T valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -606,7 +630,8 @@
|
|||||||
\sa operator+=(), fetchAndSubAcquire()
|
\sa operator+=(), fetchAndSubAcquire()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAddRelease(T valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAddRelease(T valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -621,7 +646,8 @@
|
|||||||
\sa operator+=(), fetchAndSubRelease()
|
\sa operator+=(), fetchAndSubRelease()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAddOrdered(T valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAddOrdered(T valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -636,7 +662,8 @@
|
|||||||
\sa operator+=(), fetchAndSubOrdered()
|
\sa operator+=(), fetchAndSubOrdered()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::operator+=(T value)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::operator+=(T value)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic add-and-fetch.
|
Atomic add-and-fetch.
|
||||||
@ -650,7 +677,8 @@
|
|||||||
\sa fetchAndAddOrdered(), operator-=()
|
\sa fetchAndAddOrdered(), operator-=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndSubRelaxed(T valueToSub)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndSubRelaxed(T valueToSub)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-sub.
|
Atomic fetch-and-sub.
|
||||||
@ -665,7 +693,8 @@
|
|||||||
\sa operator-=(), fetchAndAddRelaxed()
|
\sa operator-=(), fetchAndAddRelaxed()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndSubAcquire(T valueToSub)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndSubAcquire(T valueToSub)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-sub.
|
Atomic fetch-and-sub.
|
||||||
@ -681,7 +710,8 @@
|
|||||||
\sa operator-=(), fetchAndAddAcquire()
|
\sa operator-=(), fetchAndAddAcquire()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndSubRelease(T valueToSub)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndSubRelease(T valueToSub)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-sub.
|
Atomic fetch-and-sub.
|
||||||
@ -697,7 +727,8 @@
|
|||||||
\sa operator-=(), fetchAndAddRelease()
|
\sa operator-=(), fetchAndAddRelease()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndSubOrdered(T valueToSub)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndSubOrdered(T valueToSub)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-sub.
|
Atomic fetch-and-sub.
|
||||||
@ -713,7 +744,8 @@
|
|||||||
\sa operator-=(), fetchAndAddOrdered()
|
\sa operator-=(), fetchAndAddOrdered()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::operator-=(T value)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::operator-=(T value)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic sub-and-fetch.
|
Atomic sub-and-fetch.
|
||||||
@ -727,7 +759,8 @@
|
|||||||
\sa fetchAndSubOrdered(), operator+=()
|
\sa fetchAndSubOrdered(), operator+=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndOrRelaxed(T valueToOr)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndOrRelaxed(T valueToOr)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-or.
|
Atomic fetch-and-or.
|
||||||
@ -742,7 +775,8 @@
|
|||||||
\sa operator|=()
|
\sa operator|=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndOrAcquire(T valueToOr)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndOrAcquire(T valueToOr)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-or.
|
Atomic fetch-and-or.
|
||||||
@ -758,7 +792,8 @@
|
|||||||
\sa operator|=()
|
\sa operator|=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndOrRelease(T valueToOr)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndOrRelease(T valueToOr)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-or.
|
Atomic fetch-and-or.
|
||||||
@ -774,7 +809,8 @@
|
|||||||
\sa operator|=()
|
\sa operator|=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndOrOrdered(T valueToOr)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndOrOrdered(T valueToOr)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-or.
|
Atomic fetch-and-or.
|
||||||
@ -790,7 +826,8 @@
|
|||||||
\sa operator|=()
|
\sa operator|=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::operator|=(T value)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::operator|=(T value)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic or-and-fetch.
|
Atomic or-and-fetch.
|
||||||
@ -804,7 +841,8 @@
|
|||||||
\sa fetchAndOrOrdered()
|
\sa fetchAndOrOrdered()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndXorRelaxed(T valueToXor)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndXorRelaxed(T valueToXor)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-xor.
|
Atomic fetch-and-xor.
|
||||||
@ -819,7 +857,8 @@
|
|||||||
\sa operator^=()
|
\sa operator^=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndXorAcquire(T valueToXor)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndXorAcquire(T valueToXor)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-xor.
|
Atomic fetch-and-xor.
|
||||||
@ -835,7 +874,8 @@
|
|||||||
\sa operator^=()
|
\sa operator^=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndXorRelease(T valueToXor)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndXorRelease(T valueToXor)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-xor.
|
Atomic fetch-and-xor.
|
||||||
@ -851,7 +891,8 @@
|
|||||||
\sa operator^=()
|
\sa operator^=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndXorOrdered(T valueToXor)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndXorOrdered(T valueToXor)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-xor.
|
Atomic fetch-and-xor.
|
||||||
@ -867,7 +908,8 @@
|
|||||||
\sa operator^=()
|
\sa operator^=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::operator^=(T value)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::operator^=(T value)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic xor-and-fetch.
|
Atomic xor-and-fetch.
|
||||||
@ -881,7 +923,8 @@
|
|||||||
\sa fetchAndXorOrdered()
|
\sa fetchAndXorOrdered()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAndRelaxed(T valueToAnd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAndRelaxed(T valueToAnd)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-and.
|
Atomic fetch-and-and.
|
||||||
@ -896,7 +939,8 @@
|
|||||||
\sa operator&=()
|
\sa operator&=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAndAcquire(T valueToAnd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAndAcquire(T valueToAnd)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-and.
|
Atomic fetch-and-and.
|
||||||
@ -912,7 +956,8 @@
|
|||||||
\sa operator&=()
|
\sa operator&=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAndRelease(T valueToAnd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAndRelease(T valueToAnd)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-and.
|
Atomic fetch-and-and.
|
||||||
@ -928,7 +973,8 @@
|
|||||||
\sa operator&=()
|
\sa operator&=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::fetchAndAndOrdered(T valueToAnd)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::fetchAndAndOrdered(T valueToAnd)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic fetch-and-and.
|
Atomic fetch-and-and.
|
||||||
@ -944,7 +990,8 @@
|
|||||||
\sa operator&=()
|
\sa operator&=()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T QAtomicInteger<T>::operator&=(T value)
|
/*!
|
||||||
|
\fn template <typename T> T QAtomicInteger<T>::operator&=(T value)
|
||||||
\since 5.3
|
\since 5.3
|
||||||
|
|
||||||
Atomic add-and-fetch.
|
Atomic add-and-fetch.
|
||||||
@ -1287,17 +1334,20 @@
|
|||||||
\sa QAtomicInteger
|
\sa QAtomicInteger
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> QAtomicPointer<T>::QAtomicPointer(T *value)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicPointer<T>::QAtomicPointer(T *value)
|
||||||
|
|
||||||
Constructs a QAtomicPointer with the given \a value.
|
Constructs a QAtomicPointer with the given \a value.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> QAtomicPointer<T>::QAtomicPointer(const QAtomicPointer<T> &other)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicPointer<T>::QAtomicPointer(const QAtomicPointer<T> &other)
|
||||||
|
|
||||||
Constructs a copy of \a other.
|
Constructs a copy of \a other.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> QAtomicPointer &QAtomicPointer<T>::operator=(const QAtomicPointer &other)
|
/*!
|
||||||
|
\fn template <typename T> QAtomicPointer &QAtomicPointer<T>::operator=(const QAtomicPointer &other)
|
||||||
|
|
||||||
Assigns \a other to this QAtomicPointer and returns a reference to
|
Assigns \a other to this QAtomicPointer and returns a reference to
|
||||||
this QAtomicPointer.
|
this QAtomicPointer.
|
||||||
@ -1369,18 +1419,21 @@
|
|||||||
\sa storeRelaxed(), loadRelaxed()
|
\sa storeRelaxed(), loadRelaxed()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isTestAndSetNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isTestAndSetNative()
|
||||||
|
|
||||||
Returns \c true if test-and-set is implemented using atomic processor
|
Returns \c true if test-and-set is implemented using atomic processor
|
||||||
instructions, false otherwise.
|
instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isTestAndSetWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isTestAndSetWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic test-and-set is wait-free, false otherwise.
|
Returns \c true if atomic test-and-set is wait-free, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -1394,7 +1447,8 @@
|
|||||||
processor to freely reorder memory accesses.
|
processor to freely reorder memory accesses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -1409,7 +1463,8 @@
|
|||||||
be re-ordered before the atomic operation.
|
be re-ordered before the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -1424,7 +1479,8 @@
|
|||||||
re-ordered after the atomic operation.
|
re-ordered after the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
|
||||||
|
|
||||||
Atomic test-and-set.
|
Atomic test-and-set.
|
||||||
|
|
||||||
@ -1439,19 +1495,22 @@
|
|||||||
may not be re-ordered.
|
may not be re-ordered.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isFetchAndStoreNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isFetchAndStoreNative()
|
||||||
|
|
||||||
Returns \c true if fetch-and-store is implemented using atomic
|
Returns \c true if fetch-and-store is implemented using atomic
|
||||||
processor instructions, false otherwise.
|
processor instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isFetchAndStoreWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isFetchAndStoreWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic fetch-and-store is wait-free, false
|
Returns \c true if atomic fetch-and-store is wait-free, false
|
||||||
otherwise.
|
otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -1463,7 +1522,8 @@
|
|||||||
processor to freely reorder memory accesses.
|
processor to freely reorder memory accesses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -1476,7 +1536,8 @@
|
|||||||
be re-ordered before the atomic operation.
|
be re-ordered before the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -1489,7 +1550,8 @@
|
|||||||
re-ordered after the atomic operation.
|
re-ordered after the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
|
||||||
|
|
||||||
Atomic fetch-and-store.
|
Atomic fetch-and-store.
|
||||||
|
|
||||||
@ -1502,19 +1564,22 @@
|
|||||||
may not be re-ordered.
|
may not be re-ordered.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isFetchAndAddNative()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isFetchAndAddNative()
|
||||||
|
|
||||||
Returns \c true if fetch-and-add is implemented using atomic
|
Returns \c true if fetch-and-add is implemented using atomic
|
||||||
processor instructions, false otherwise.
|
processor instructions, false otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> bool QAtomicPointer<T>::isFetchAndAddWaitFree()
|
/*!
|
||||||
|
\fn template <typename T> bool QAtomicPointer<T>::isFetchAndAddWaitFree()
|
||||||
|
|
||||||
Returns \c true if atomic fetch-and-add is wait-free, false
|
Returns \c true if atomic fetch-and-add is wait-free, false
|
||||||
otherwise.
|
otherwise.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -1526,7 +1591,8 @@
|
|||||||
processor to freely reorder memory accesses.
|
processor to freely reorder memory accesses.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -1539,7 +1605,8 @@
|
|||||||
be re-ordered before the atomic operation.
|
be re-ordered before the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
@ -1552,7 +1619,8 @@
|
|||||||
re-ordered after the atomic operation.
|
re-ordered after the atomic operation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn template <typename T> T *QAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
|
/*!
|
||||||
|
\fn template <typename T> T *QAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
|
||||||
|
|
||||||
Atomic fetch-and-add.
|
Atomic fetch-and-add.
|
||||||
|
|
||||||
|
@ -50,6 +50,10 @@ QT_BEGIN_NAMESPACE
|
|||||||
QT_WARNING_PUSH
|
QT_WARNING_PUSH
|
||||||
QT_WARNING_DISABLE_GCC("-Wextra")
|
QT_WARNING_DISABLE_GCC("-Wextra")
|
||||||
|
|
||||||
|
#ifdef Q_CLANG_QDOC
|
||||||
|
# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
|
||||||
|
#endif
|
||||||
|
|
||||||
// High-level atomic integer operations
|
// High-level atomic integer operations
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class QAtomicInteger : public QBasicAtomicInteger<T>
|
class QAtomicInteger : public QBasicAtomicInteger<T>
|
||||||
@ -194,7 +198,9 @@ public:
|
|||||||
#ifdef Q_QDOC
|
#ifdef Q_QDOC
|
||||||
T *load() const;
|
T *load() const;
|
||||||
T *loadAcquire() const;
|
T *loadAcquire() const;
|
||||||
|
T *loadRelaxed() const;
|
||||||
void store(T *newValue);
|
void store(T *newValue);
|
||||||
|
void storeRelaxed(T *newValue);
|
||||||
void storeRelease(T *newValue);
|
void storeRelease(T *newValue);
|
||||||
|
|
||||||
static Q_DECL_CONSTEXPR bool isTestAndSetNative();
|
static Q_DECL_CONSTEXPR bool isTestAndSetNative();
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
\include module-use.qdocinc using qt module
|
\include module-use.qdocinc using qt module
|
||||||
\quotefile overview/using-qt-gui.cmake
|
\quotefile overview/using-qt-gui.cmake
|
||||||
|
|
||||||
See also the \l[QtDoc]{Building with CMake} overview.
|
See also the \l[QtDoc]{Build with CMake} overview.
|
||||||
|
|
||||||
\section2 Building with qmake
|
\section2 Building with qmake
|
||||||
|
|
||||||
|
@ -1344,7 +1344,7 @@ Qt::WindowStates QWindow::windowStates() const
|
|||||||
This is a hint to the window manager that this window is a dialog or pop-up
|
This is a hint to the window manager that this window is a dialog or pop-up
|
||||||
on behalf of the transient parent.
|
on behalf of the transient parent.
|
||||||
|
|
||||||
In order to cause the window to be centered above its transient parent by
|
In order to cause the window to be centered above its transient \a parent by
|
||||||
default, depending on the window manager, it may also be necessary to call
|
default, depending on the window manager, it may also be necessary to call
|
||||||
setFlags() with a suitable \l Qt::WindowType (such as \c Qt::Dialog).
|
setFlags() with a suitable \l Qt::WindowType (such as \c Qt::Dialog).
|
||||||
|
|
||||||
|
@ -1512,7 +1512,7 @@ bool QSslSocket::addDefaultCaCertificates(const QString &path, QSsl::EncodingFor
|
|||||||
SSL socket's CA certificate database is initialized to the default
|
SSL socket's CA certificate database is initialized to the default
|
||||||
CA certificate database.
|
CA certificate database.
|
||||||
|
|
||||||
\sa QSslConfiguration::caCertificates(), addCaCertificates()
|
\sa addCaCertificates()
|
||||||
*/
|
*/
|
||||||
void QSslSocket::addDefaultCaCertificate(const QSslCertificate &certificate)
|
void QSslSocket::addDefaultCaCertificate(const QSslCertificate &certificate)
|
||||||
{
|
{
|
||||||
|
@ -278,8 +278,8 @@
|
|||||||
\section2 Avoid Fixed Timeouts
|
\section2 Avoid Fixed Timeouts
|
||||||
|
|
||||||
Avoid using hard-coded timeouts, such as QTest::qWait() to wait for some
|
Avoid using hard-coded timeouts, such as QTest::qWait() to wait for some
|
||||||
conditions to become true. Consider using the \l QtSignalSpy class,
|
conditions to become true. Consider using the \l QSignalSpy class,
|
||||||
the \l QTRY_VERIFY() or \l QTRY_COMPARE() macros, or the \c QtSignalSpy
|
the \l QTRY_VERIFY() or \l QTRY_COMPARE() macros, or the \c QSignalSpy
|
||||||
class in conjunction with the \c QTRY_ macro variants.
|
class in conjunction with the \c QTRY_ macro variants.
|
||||||
|
|
||||||
The \c qWait() function can be used to set a delay for a fixed period
|
The \c qWait() function can be used to set a delay for a fixed period
|
||||||
|
@ -1453,7 +1453,7 @@ QStyleOptionTab::QStyleOptionTab(int version)
|
|||||||
\value None A normal tab button.
|
\value None A normal tab button.
|
||||||
\value HasFrame The tab button is positioned on a tab frame
|
\value HasFrame The tab button is positioned on a tab frame
|
||||||
|
|
||||||
\sa features
|
\sa QStyleOptionToolBar::features
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user