QBasicAtomic Struct Reference

#include <qatomic_parisc.h>

Inheritance diagram for QBasicAtomic:

Inheritance graph
[legend]
List of all members.

Detailed Description

Definition at line 40 of file qatomic_parisc.h.

Public Member Functions

void init (int x=0)
bool ref ()
bool deref ()
bool operator== (int x) const
bool operator!= (int x) const
bool operator! () const
QBasicAtomicoperator= (int x)
 operator int () const
bool testAndSet (int expected, int newval)
bool testAndSetAcquire (int expected, int newval)
bool testAndSetRelease (int expected, int newval)
int exchange (int newval)
void init (int x=0)
bool ref ()
bool deref ()
bool operator== (int x) const
bool operator!= (int x) const
bool operator! () const
 operator int () const
QBasicAtomicoperator= (int x)
bool testAndSet (int expected, int newval)
bool testAndSetAcquire (int expected, int newval)
bool testAndSetRelease (int expected, int newval)
int exchange (int newval)

Public Attributes

int lock [4]
int atomic
volatile int atomic


Member Function Documentation

void QBasicAtomic::init ( int  x = 0  )  [inline]

Definition at line 45 of file qatomic_parisc.h.

References atomic, lock, and x.

Referenced by QString::fromLatin1_helper(), QAtomic::QAtomic(), QByteArray::QByteArray(), and QString::QString().

00046     {
00047         lock[0] = lock[1] = lock[2] = lock[3] = -1; atomic = x;
00048     }

bool QBasicAtomic::ref (  )  [inline]

Definition at line 50 of file qatomic_parisc.h.

References atomic, lock, q_atomic_lock, and q_atomic_unlock().

Referenced by QDBusMarshaller::appendRegisteredType(), QByteArray::clear(), QString::fromAscii_helper(), QString::fromLatin1_helper(), QConfFile::fromName(), QBrush::init(), QWindowsXPStylePrivate::init(), QDomNodePrivate::insertAfter(), QDomNodePrivate::insertBefore(), QFontEngineMultiFT::loadEngine(), QFontEngineMultiXLFD::loadEngine(), QDBusConnection::operator=(), QDBusArgument::operator=(), QPersistentModelIndex::operator=(), QBrush::QBrush(), QByteArray::QByteArray(), QColormap::QColormap(), QCursor::QCursor(), QDateTime::QDateTime(), QDBusArgument::QDBusArgument(), QDBusConnection::QDBusConnection(), QDBusMessage::QDBusMessage(), QDomDocumentPrivate::QDomDocumentPrivate(), QDomElementPrivate::QDomElementPrivate(), QDomImplementation::QDomImplementation(), QDomNamedNodeMap::QDomNamedNodeMap(), QDomNode::QDomNode(), QDomNodeList::QDomNodeList(), QDomNodeListPrivate::QDomNodeListPrivate(), QFont::QFont(), QFontEngineMultiFT::QFontEngineMultiFT(), QFontInfo::QFontInfo(), QFontMetrics::QFontMetrics(), QFontMetricsF::QFontMetricsF(), QFontSubset::QFontSubset(), QGLColormap::QGLColormap(), QHash< QString, QTranslator * >::QHash(), QIcon::QIcon(), QImage::QImage(), QKeySequence::QKeySequence(), QLinkedList< bool >::QLinkedList(), QList< QPostEvent >::QList(), QMap< int, QFrameInfo >::QMap(), QPalette::QPalette(), QPen::QPen(), QPersistentModelIndex::QPersistentModelIndex(), QRegion::QRegion(), qRegisterResourceData(), QSqlDatabase::QSqlDatabase(), QSqlField::QSqlField(), QSqlQuery::QSqlQuery(), QSqlRecord::QSqlRecord(), QString::QString(), QTextDocumentFragment::QTextDocumentFragment(), QUrl::QUrl(), QVariant::QVariant(), QThreadData::ref(), QResource::registerResource(), QDomNodePrivate::replaceChild(), QDomNamedNodeMapPrivate::setNamedItemNS(), QString::trimmed(), and QByteArray::trimmed().

00051     {
00052   q_atomic_lock(lock);
00053   bool ret = (++atomic != 0);
00054   q_atomic_unlock(lock);
00055   return ret;
00056     }

Here is the call graph for this function:

bool QBasicAtomic::deref (  )  [inline]

Definition at line 58 of file qatomic_parisc.h.

References atomic, lock, q_atomic_lock, and q_atomic_unlock().

Referenced by QWindowsXPStylePrivate::cleanup(), QDomDocumentPrivate::clear(), QDomNode::clear(), QVariant::clear(), QByteArray::clear(), QDBusConnection::connectToBus(), QDomDocumentPrivate::createDocumentFragment(), QDomImplementation::createDocumentType(), QDomDocumentPrivate::createElement(), QDomDocumentPrivate::createElementNS(), QDomDocumentPrivate::createEntityReference(), QThreadData::deref(), QVariant::detach(), QFont::detach(), QDomDocumentPrivate::importNode(), QMutex::lock(), QTest::messageHandler(), QDBusConnection::operator=(), QDBusArgument::operator=(), QPersistentModelIndex::operator=(), qUnregisterResourceData(), QFreetypeFace::release(), QLibraryPrivate::release(), QDomNodePrivate::removeChild(), QDomNamedNodeMapPrivate::removeNamedItem(), QDomNodePrivate::replaceChild(), QMutex::tryLock(), QLibraryPrivate::unload(), QBrush::~QBrush(), QBrushStatic::~QBrushStatic(), QByteArray::~QByteArray(), QColormap::~QColormap(), QCursor::~QCursor(), QDateTime::~QDateTime(), QDBusArgument::~QDBusArgument(), QDBusConnection::~QDBusConnection(), QDBusMessage::~QDBusMessage(), QDirPrivate::~QDirPrivate(), QDomDocumentPrivate::~QDomDocumentPrivate(), QDomDocumentTypePrivate::~QDomDocumentTypePrivate(), QDomElementPrivate::~QDomElementPrivate(), QDomImplementation::~QDomImplementation(), QDomNamedNodeMap::~QDomNamedNodeMap(), QDomNode::~QDomNode(), QDomNodeList::~QDomNodeList(), QDomNodeListPrivate::~QDomNodeListPrivate(), QFileInfoPrivate::~QFileInfoPrivate(), QFont::~QFont(), QFontEngineData::~QFontEngineData(), QFontEngineMulti::~QFontEngineMulti(), QFontInfo::~QFontInfo(), QFontMetrics::~QFontMetrics(), QFontMetricsF::~QFontMetricsF(), QFontPrivate::~QFontPrivate(), QFontSubset::~QFontSubset(), QGLColormap::~QGLColormap(), QHash< QString, QTranslator * >::~QHash(), QIcon::~QIcon(), QImage::~QImage(), QKeySequence::~QKeySequence(), QLinkedList< T >::~QLinkedList(), QMap< int, QFrameInfo >::~QMap(), QPalette::~QPalette(), QPen::~QPen(), QPenStatic::~QPenStatic(), QPersistentModelIndex::~QPersistentModelIndex(), QSqlDatabase::~QSqlDatabase(), QSqlField::~QSqlField(), QSqlQuery::~QSqlQuery(), QSqlRecord::~QSqlRecord(), QString::~QString(), QTextDocumentFragment::~QTextDocumentFragment(), QUrl::~QUrl(), and QVariant::~QVariant().

00059     {
00060   q_atomic_lock(lock);
00061   bool ret = (--atomic != 0);
00062   q_atomic_unlock(lock);
00063   return ret;
00064     }

Here is the call graph for this function:

bool QBasicAtomic::operator== ( int  x  )  const [inline]

Definition at line 66 of file qatomic_parisc.h.

References atomic.

00067     { return atomic == x; }

bool QBasicAtomic::operator!= ( int  x  )  const [inline]

Definition at line 69 of file qatomic_parisc.h.

References atomic.

00070     { return atomic != x; }

bool QBasicAtomic::operator! (  )  const [inline]

Definition at line 72 of file qatomic_parisc.h.

References atomic.

00073     { return atomic == 0; }

QBasicAtomic& QBasicAtomic::operator= ( int  x  )  [inline]

Definition at line 75 of file qatomic_parisc.h.

References atomic, lock, q_atomic_lock, and q_atomic_unlock().

00076     {
00077         q_atomic_lock(lock);
00078         atomic = x;
00079         q_atomic_unlock(lock);
00080         return *this;
00081     }

Here is the call graph for this function:

QBasicAtomic::operator int (  )  const [inline]

Definition at line 83 of file qatomic_parisc.h.

References atomic.

00084     { return atomic; }

bool QBasicAtomic::testAndSet ( int  expected,
int  newval 
) [inline]

Definition at line 86 of file qatomic_parisc.h.

References atomic, lock, q_atomic_lock, and q_atomic_unlock().

Referenced by QFreetypeFace::lock(), QHttpRequest::nextId(), QFtpCommand::nextId(), nextTimerId(), qimage_next_serial_number(), qt_ignore_sigpipe(), qt_qhostinfo_newid(), qt_qprocess_nextId(), qt_socks5_new_socket_descriptor(), testAndSetAcquire(), testAndSetRelease(), and QFreetypeFace::unlock().

00087     {
00088   q_atomic_lock(lock);
00089   if (atomic == expected) {
00090             atomic = newval;
00091       q_atomic_unlock(lock);
00092       return true;
00093         }
00094   q_atomic_unlock(lock);
00095   return false;
00096     }

Here is the call graph for this function:

bool QBasicAtomic::testAndSetAcquire ( int  expected,
int  newval 
) [inline]

Definition at line 98 of file qatomic_parisc.h.

References testAndSet().

Referenced by QMutex::lock(), and QMutex::tryLock().

00099     {
00100         return testAndSet(expected, newval);
00101     }

Here is the call graph for this function:

bool QBasicAtomic::testAndSetRelease ( int  expected,
int  newval 
) [inline]

Definition at line 103 of file qatomic_parisc.h.

References testAndSet().

Referenced by QEventDispatcherUNIXPrivate::doSelect(), and QMutex::unlock().

00104     {
00105         return testAndSet(expected, newval);
00106     }

Here is the call graph for this function:

int QBasicAtomic::exchange ( int  newval  )  [inline]

Definition at line 108 of file qatomic_parisc.h.

References atomic, lock, q_atomic_lock, and q_atomic_unlock().

00109     {
00110   q_atomic_lock(lock);
00111   int oldval = atomic;
00112   atomic = newval;
00113   q_atomic_unlock(lock);
00114   return oldval;
00115     }

Here is the call graph for this function:

void QBasicAtomic::init ( int  x = 0  )  [inline]

Definition at line 67 of file qatomic.h.

References atomic, and x.

00068     { atomic = x; }

bool QBasicAtomic::ref (  )  [inline]

Definition at line 70 of file qatomic.h.

References atomic, and q_atomic_increment().

00071     { return q_atomic_increment(&atomic) != 0; }

Here is the call graph for this function:

bool QBasicAtomic::deref (  )  [inline]

Definition at line 73 of file qatomic.h.

References atomic, and q_atomic_decrement().

00074     { return q_atomic_decrement(&atomic) != 0; }

Here is the call graph for this function:

bool QBasicAtomic::operator== ( int  x  )  const [inline]

Definition at line 76 of file qatomic.h.

References atomic.

00077     { return atomic == x; }

bool QBasicAtomic::operator!= ( int  x  )  const [inline]

Definition at line 79 of file qatomic.h.

References atomic.

00080     { return atomic != x; }

bool QBasicAtomic::operator! (  )  const [inline]

Definition at line 82 of file qatomic.h.

References atomic.

00083     { return atomic == 0; }

QBasicAtomic::operator int (  )  const [inline]

Definition at line 85 of file qatomic.h.

References atomic.

00086     { return atomic; }

QBasicAtomic& QBasicAtomic::operator= ( int  x  )  [inline]

Definition at line 88 of file qatomic.h.

References atomic, and q_atomic_set_int().

00089     {
00090         (void) q_atomic_set_int(&atomic, x);
00091         return *this;
00092     }

Here is the call graph for this function:

bool QBasicAtomic::testAndSet ( int  expected,
int  newval 
) [inline]

Definition at line 94 of file qatomic.h.

References atomic, and q_atomic_test_and_set_int().

00095     { return q_atomic_test_and_set_int(&atomic, expected, newval) != 0; }

Here is the call graph for this function:

bool QBasicAtomic::testAndSetAcquire ( int  expected,
int  newval 
) [inline]

Definition at line 97 of file qatomic.h.

References atomic, and q_atomic_test_and_set_acquire_int().

00098     { return q_atomic_test_and_set_acquire_int(&atomic, expected, newval) != 0; }

Here is the call graph for this function:

bool QBasicAtomic::testAndSetRelease ( int  expected,
int  newval 
) [inline]

Definition at line 100 of file qatomic.h.

References atomic, and q_atomic_test_and_set_release_int().

00101     { return q_atomic_test_and_set_release_int(&atomic, expected, newval) != 0; }

Here is the call graph for this function:

int QBasicAtomic::exchange ( int  newval  )  [inline]

Definition at line 103 of file qatomic.h.

References atomic, and q_atomic_set_int().

00104     { return q_atomic_set_int(&atomic, newval); }

Here is the call graph for this function:


Member Data Documentation

int QBasicAtomic::lock[4]

Definition at line 42 of file qatomic_parisc.h.

Referenced by deref(), exchange(), init(), operator=(), ref(), and testAndSet().

int QBasicAtomic::atomic

Definition at line 43 of file qatomic_parisc.h.

Referenced by deref(), exchange(), init(), operator int(), operator!(), operator!=(), operator=(), operator==(), ref(), testAndSet(), testAndSetAcquire(), and testAndSetRelease().

volatile int QBasicAtomic::atomic

Definition at line 65 of file qatomic.h.


The documentation for this struct was generated from the following files:
Generated on Thu Mar 15 16:51:35 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1