From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/qthreadstorage.html | 189 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 doc/html/qthreadstorage.html (limited to 'doc/html/qthreadstorage.html') diff --git a/doc/html/qthreadstorage.html b/doc/html/qthreadstorage.html new file mode 100644 index 0000000..ab3c713 --- /dev/null +++ b/doc/html/qthreadstorage.html @@ -0,0 +1,189 @@ + + + + + +QThreadStorage Class + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

QThreadStorage Class Reference

+ +

The QThreadStorage class provides per-thread data storage. +More... +

All the functions in this class are thread-safe when Qt is built with thread support.

+

#include <qthreadstorage.h> +

List of all member functions. +

Public Members

+ +

Detailed Description

+ + +The QThreadStorage class provides per-thread data storage. +

+ + +

QThreadStorage is a template class that provides per-thread data +storage. +

Note that due to compiler limitations, QThreadStorage can only store pointers. +

The setLocalData() function stores a single thread-specific value +for the calling thread. The data can be accessed later using the +localData() functions. QThreadStorage takes ownership of the +data (which must be created on the heap with new) and deletes +it when the thread exits (either normally or via termination). +

The hasLocalData() function allows the programmer to determine if +data has previously been set using the setLocalData() function. +This is useful for lazy initializiation. +

For example, the following code uses QThreadStorage to store a +single cache for each thread that calls the cacheObject() and +removeFromCache() functions. The cache is automatically +deleted when the calling thread exits (either normally or via +termination). +

+    QThreadStorage<QCache<SomeClass> *> caches;
+
+    void cacheObject( const QString &key, SomeClass *object )
+    {
+        if ( ! caches.hasLocalData() )
+            caches.setLocalData( new QCache<SomeClass> );
+
+        caches.localData()->insert( key, object );
+    }
+
+    void removeFromCache( const QString &key )
+    {
+        if ( ! caches.hasLocalData() )
+            return; // nothing to do
+
+        caches.localData()->remove( key );
+    }
+    
+ +

Caveats +

+

+

See also Environment Classes and Threading. + +


Member Function Documentation

+

QThreadStorage::QThreadStorage () +

+ +

Constructs a new per-thread data storage object. + +

QThreadStorage::~QThreadStorage () +

+ +

Destroys the per-thread data storage object. +

Note: The per-thread data stored is not deleted. Any data left +in QThreadStorage is leaked. Make sure that all threads using +QThreadStorage have exited before deleting the QThreadStorage. +

See also hasLocalData(). + +

bool QThreadStorage::hasLocalData () const +

+ +

Returns TRUE if the calling thread has non-zero data available; +otherwise returns FALSE. +

See also localData(). + +

T & QThreadStorage::localData () +

+ +

Returns a reference to the data that was set by the calling +thread. +

Note: QThreadStorage can only store pointers. This function +returns a reference to the pointer that was set by the calling +thread. The value of this reference is 0 if no data was set by +the calling thread, +

See also hasLocalData(). + +

T QThreadStorage::localData () const +

+ +This is an overloaded member function, provided for convenience. It behaves essentially like the above function. +

Returns a copy of the data that was set by the calling thread. +

Note: QThreadStorage can only store pointers. This function +returns a pointer to the data that was set by the calling thread. +If no data was set by the calling thread, this function returns 0. +

See also hasLocalData(). + +

void QThreadStorage::setLocalData ( T data ) +

+ +

Sets the local data for the calling thread to data. It can be +accessed later using the localData() functions. +

If data is 0, this function deletes the previous data (if +any) and returns immediately. +

If data is non-zero, QThreadStorage takes ownership of the data and deletes it automatically either when the thread exits +(either normally or via termination) or when setLocalData() is +called again. +

Note: QThreadStorage can only store pointers. The data +argument must be either a pointer to an object created on the heap +(i.e. using new) or 0. You should not delete data +yourself; QThreadStorage takes ownership and will delete the data itself. +

See also localData() and hasLocalData(). + + +


+This file is part of the Qt toolkit. +Copyright © 1995-2007 +Trolltech. All Rights Reserved.


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.1