source: trunk/doc/html/qmemarray-h.html

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

reference documentation added

File size: 6.8 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/qmemarray.h:1 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>qmemarray.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>qmemarray.h</h1>
33
34<p>This is the verbatim text of the qmemarray.h include file. It is provided only for illustration; the copyright remains with Trolltech.
35<hr>
36<pre>
37/****************************************************************************
38** $Id: qmemarray-h.html 2051 2007-02-21 10:04:20Z chehrlic $
39**
40** Definition of QMemArray template/macro class
41**
42** Created : 930906
43**
44** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
45**
46** This file is part of the tools module of the Qt GUI Toolkit.
47**
48** This file may be distributed under the terms of the Q Public License
49** as defined by Trolltech ASA of Norway and appearing in the file
50** LICENSE.QPL included in the packaging of this file.
51**
52** This file may be distributed and/or modified under the terms of the
53** GNU General Public License version 2 as published by the Free Software
54** Foundation and appearing in the file LICENSE.GPL included in the
55** packaging of this file.
56**
57** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
58** licenses may use this file in accordance with the Qt Commercial License
59** Agreement provided with the Software.
60**
61** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
62** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
63**
64** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
65** information about Qt Commercial License Agreements.
66** See http://www.trolltech.com/qpl/ for QPL licensing information.
67** See http://www.trolltech.com/gpl/ for GPL licensing information.
68**
69** Contact info@trolltech.com if any conditions of this licensing are
70** not clear to you.
71**
72**********************************************************************/
73
74#ifndef QMEMARRAY_H
75#define QMEMARRAY_H
76
77#ifndef QT_H
78#include "qgarray.h"
79#endif // QT_H
80
81
82template&lt;class type&gt;
83class QMemArray : public QGArray
84{
85public:
86 typedef type* Iterator;
87 typedef const type* ConstIterator;
88 typedef type ValueType;
89
90protected:
91 QMemArray( int, int ) : QGArray( 0, 0 ) {}
92
93public:
94 QMemArray() {}
95 QMemArray( int size ) : QGArray(size*sizeof(type)) {} // ### 4.0 Q_EXPLICIT
96 QMemArray( const QMemArray&lt;type&gt; &amp;a ) : QGArray(a) {}
97 ~QMemArray() {}
98 QMemArray&lt;type&gt; &amp;operator=(const QMemArray&lt;type&gt; &amp;a)
99 { return (QMemArray&lt;type&gt;&amp;)QGArray::assign(a); }
100 type *data() const { return (type *)QGArray::data(); }
101 uint nrefs() const { return QGArray::nrefs(); }
102 uint size() const { return QGArray::size()/sizeof(type); }
103 uint count() const { return size(); }
104 bool isEmpty() const { return QGArray::size() == 0; }
105 bool isNull() const { return QGArray::data() == 0; }
106 bool resize( uint size ) { return QGArray::resize(size*sizeof(type)); }
107 bool resize( uint size, Optimization optim ) { return QGArray::resize(size*sizeof(type), optim); }
108 bool truncate( uint pos ) { return QGArray::resize(pos*sizeof(type)); }
109 bool fill( const type &amp;d, int size = -1 )
110 { return QGArray::fill((char*)&amp;d,size,sizeof(type) ); }
111 void detach() { QGArray::detach(); }
112 QMemArray&lt;type&gt; copy() const
113 { QMemArray&lt;type&gt; tmp; return tmp.duplicate(*this); }
114 QMemArray&lt;type&gt;&amp; assign( const QMemArray&lt;type&gt;&amp; a )
115 { return (QMemArray&lt;type&gt;&amp;)QGArray::assign(a); }
116 QMemArray&lt;type&gt;&amp; assign( const type *a, uint n )
117 { return (QMemArray&lt;type&gt;&amp;)QGArray::assign((char*)a,n*sizeof(type)); }
118 QMemArray&lt;type&gt;&amp; duplicate( const QMemArray&lt;type&gt;&amp; a )
119 { return (QMemArray&lt;type&gt;&amp;)QGArray::duplicate(a); }
120 QMemArray&lt;type&gt;&amp; duplicate( const type *a, uint n )
121 { return (QMemArray&lt;type&gt;&amp;)QGArray::duplicate((char*)a,n*sizeof(type)); }
122 QMemArray&lt;type&gt;&amp; setRawData( const type *a, uint n )
123 { return (QMemArray&lt;type&gt;&amp;)QGArray::setRawData((char*)a,
124 n*sizeof(type)); }
125 void resetRawData( const type *a, uint n )
126 { QGArray::resetRawData((char*)a,n*sizeof(type)); }
127 int find( const type &amp;d, uint i=0 ) const
128 { return QGArray::find((char*)&amp;d,i,sizeof(type)); }
129 int contains( const type &amp;d ) const
130 { return QGArray::contains((char*)&amp;d,sizeof(type)); }
131 void sort() { QGArray::sort(sizeof(type)); }
132 int bsearch( const type &amp;d ) const
133 { return QGArray::bsearch((const char*)&amp;d,sizeof(type)); }
134 // ### Qt 4.0: maybe provide uint overload as work-around for MSVC bug
135 type&amp; operator[]( int i ) const
136 { return (type &amp;)(*(type *)QGArray::at(i*sizeof(type))); }
137 type&amp; at( uint i ) const
138 { return (type &amp;)(*(type *)QGArray::at(i*sizeof(type))); }
139 operator const type*() const { return (const type *)QGArray::data(); }
140 bool operator==( const QMemArray&lt;type&gt; &amp;a ) const { return isEqual(a); }
141 bool operator!=( const QMemArray&lt;type&gt; &amp;a ) const { return !isEqual(a); }
142 Iterator begin() { return data(); }
143 Iterator end() { return data() + size(); }
144 ConstIterator begin() const { return data(); }
145 ConstIterator end() const { return data() + size(); }
146};
147
148#ifndef QT_NO_COMPAT
149#define QArray QMemArray
150#endif
151
152#define Q_DEFINED_QMEMARRAY
153#include "qwinexport.h"
154#endif // QARRAY_H
155</pre>
156<!-- eof -->
157<p><address><hr><div align=center>
158<table width=100% cellspacing=0 border=0><tr>
159<td>Copyright &copy; 2007
160<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
161<td align=right><div align=right>Qt 3.3.8</div>
162</table></div></address></body>
163</html>
Note: See TracBrowser for help on using the repository browser.