source: trunk/doc/html/qthreadstorage-h.html@ 190

Last change on this file since 190 was 190, checked in by rudi, 14 years ago

reference documentation added

File size: 4.4 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/include/qthreadstorage.h:1 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>qthreadstorage.h Include File</title>
7<style type="text/css"><!--
8fn { margin-left: 1cm; text-indent: -1cm; }
9a:link { color: #004faf; text-decoration: none }
10a:visited { color: #672967; text-decoration: none }
11body { background: #ffffff; color: black; }
12--></style>
13</head>
14<body>
15
16<table border="0" cellpadding="0" cellspacing="0" width="100%">
17<tr bgcolor="#E5E5E5">
18<td valign=center>
19 <a href="index.html">
20<font color="#004faf">Home</font></a>
21 | <a href="classes.html">
22<font color="#004faf">All&nbsp;Classes</font></a>
23 | <a href="mainclasses.html">
24<font color="#004faf">Main&nbsp;Classes</font></a>
25 | <a href="annotated.html">
26<font color="#004faf">Annotated</font></a>
27 | <a href="groups.html">
28<font color="#004faf">Grouped&nbsp;Classes</font></a>
29 | <a href="functions.html">
30<font color="#004faf">Functions</font></a>
31</td>
32<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>qthreadstorage.h</h1>
33
34<p>This is the verbatim text of the qthreadstorage.h include file. It is provided only for illustration; the copyright remains with Trolltech.
35<hr>
36<pre>
37/****************************************************************************
38** $Id: qthreadstorage-h.html 2051 2007-02-21 10:04:20Z chehrlic $
39**
40** ...
41**
42** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved.
43**
44** This file is part of the tools module of the Qt GUI Toolkit.
45**
46** This file may be distributed under the terms of the Q Public License
47** as defined by Trolltech ASA of Norway and appearing in the file
48** LICENSE.QPL included in the packaging of this file.
49**
50** This file may be distributed and/or modified under the terms of the
51** GNU General Public License version 2 as published by the Free Software
52** Foundation and appearing in the file LICENSE.GPL included in the
53** packaging of this file.
54**
55** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
56** licenses may use this file in accordance with the Qt Commercial License
57** Agreement provided with the Software.
58**
59** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
60** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
61**
62** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
63** information about Qt Commercial License Agreements.
64** See http://www.trolltech.com/qpl/ for QPL licensing information.
65** See http://www.trolltech.com/gpl/ for GPL licensing information.
66**
67** Contact info@trolltech.com if any conditions of this licensing are
68** not clear to you.
69**
70**********************************************************************/
71
72#ifndef QTHREADSTORAGE_H
73#define QTHREADSTORAGE_H
74
75#ifdef QT_THREAD_SUPPORT
76
77#ifndef QT_H
78#include "qglobal.h"
79#endif // QT_H
80
81class Q_EXPORT QThreadStorageData
82{
83public:
84 QThreadStorageData( void (*func)(void *) );
85 ~QThreadStorageData();
86
87 void** get() const;
88 void** set( void* p );
89
90 static void finish( void** );
91 int id;
92};
93
94
95template &lt;class T&gt;
96class QThreadStorage
97{
98private:
99 QThreadStorageData d;
100
101#if defined(Q_DISABLE_COPY)
102 // disable copy constructor and operator=
103 QThreadStorage( const QThreadStorage &amp; );
104 QThreadStorage &amp;operator=( const QThreadStorage &amp; );
105#endif // Q_DISABLE_COPY
106
107 static void deleteData( void *x ) { delete (T)x; }
108
109public:
110 inline QThreadStorage() : d( deleteData ) { }
111 inline ~QThreadStorage() { }
112
113 inline bool hasLocalData() const
114 { return d.get() != 0; }
115
116 inline T&amp; localData()
117 { void **v = d.get(); if ( !v ) v = d.set( 0 ); return *(T*)v; }
118
119 inline T localData() const
120 { void **v = d.get(); return ( v ? *(T*)v : 0 ); }
121
122 inline void setLocalData( T t )
123 { (void) d.set( t ); }
124};
125
126#endif // QT_THREAD_SUPPORT
127
128#endif // QTHREADSTORAGE_H
129</pre>
130<!-- eof -->
131<p><address><hr><div align=center>
132<table width=100% cellspacing=0 border=0><tr>
133<td>Copyright &copy; 2007
134<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
135<td align=right><div align=right>Qt 3.3.8</div>
136</table></div></address></body>
137</html>
Note: See TracBrowser for help on using the repository browser.