author | kergoth <kergoth> | 2002-11-01 00:10:42 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2002-11-01 00:10:42 (UTC) |
commit | 5042e3cf0d3514552769e441f5aad590c8eaf967 (patch) (unidiff) | |
tree | 4a5ea45f3519d981a172ab5275bf38c6fa778dec /qmake/include/qmemarray.h | |
parent | 108c1c753e74e989cc13923086996791428c9af4 (diff) | |
download | opie-5042e3cf0d3514552769e441f5aad590c8eaf967.zip opie-5042e3cf0d3514552769e441f5aad590c8eaf967.tar.gz opie-5042e3cf0d3514552769e441f5aad590c8eaf967.tar.bz2 |
Adding qmake in preperation for new build system
-rw-r--r-- | qmake/include/qmemarray.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/qmake/include/qmemarray.h b/qmake/include/qmemarray.h new file mode 100644 index 0000000..a5baf99 --- a/dev/null +++ b/qmake/include/qmemarray.h | |||
@@ -0,0 +1,122 @@ | |||
1 | /**************************************************************************** | ||
2 | ** $Id$ | ||
3 | ** | ||
4 | ** Definition of QMemArray template/macro class | ||
5 | ** | ||
6 | ** Created : 930906 | ||
7 | ** | ||
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. | ||
9 | ** | ||
10 | ** This file is part of the tools module of the Qt GUI Toolkit. | ||
11 | ** | ||
12 | ** This file may be distributed under the terms of the Q Public License | ||
13 | ** as defined by Trolltech AS of Norway and appearing in the file | ||
14 | ** LICENSE.QPL included in the packaging of this file. | ||
15 | ** | ||
16 | ** This file may be distributed and/or modified under the terms of the | ||
17 | ** GNU General Public License version 2 as published by the Free Software | ||
18 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
19 | ** packaging of this file. | ||
20 | ** | ||
21 | ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition | ||
22 | ** licenses may use this file in accordance with the Qt Commercial License | ||
23 | ** Agreement provided with the Software. | ||
24 | ** | ||
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
27 | ** | ||
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | ||
29 | ** information about Qt Commercial License Agreements. | ||
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | ||
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | ||
32 | ** | ||
33 | ** Contact info@trolltech.com if any conditions of this licensing are | ||
34 | ** not clear to you. | ||
35 | ** | ||
36 | **********************************************************************/ | ||
37 | |||
38 | #ifndef QMEMARRAY_H | ||
39 | #define QMEMARRAY_H | ||
40 | |||
41 | #ifndef QT_H | ||
42 | #include "qgarray.h" | ||
43 | #endif // QT_H | ||
44 | |||
45 | |||
46 | template<class type> | ||
47 | class QMemArray : public QGArray | ||
48 | { | ||
49 | public: | ||
50 | typedef type* Iterator; | ||
51 | typedef const type* ConstIterator; | ||
52 | typedef type ValueType; | ||
53 | |||
54 | protected: | ||
55 | QMemArray( int, int ) : QGArray( 0, 0 ) {} | ||
56 | |||
57 | public: | ||
58 | QMemArray() {} | ||
59 | QMemArray( int size ) : QGArray(size*sizeof(type)) {} | ||
60 | QMemArray( const QMemArray<type> &a ) : QGArray(a) {} | ||
61 | ~QMemArray() {} | ||
62 | QMemArray<type> &operator=(const QMemArray<type> &a) | ||
63 | { return (QMemArray<type>&)QGArray::assign(a); } | ||
64 | type *data() const{ return (type *)QGArray::data(); } | ||
65 | uint nrefs() const{ return QGArray::nrefs(); } | ||
66 | uint size() const{ return QGArray::size()/sizeof(type); } | ||
67 | uint count() const{ return size(); } | ||
68 | bool isEmpty() const{ return QGArray::size() == 0; } | ||
69 | bool isNull() const{ return QGArray::data() == 0; } | ||
70 | bool resize( uint size ){ return QGArray::resize(size*sizeof(type)); } | ||
71 | bool truncate( uint pos ){ return QGArray::resize(pos*sizeof(type)); } | ||
72 | bool fill( const type &d, int size = -1 ) | ||
73 | { return QGArray::fill((char*)&d,size,sizeof(type) ); } | ||
74 | void detach() { QGArray::detach(); } | ||
75 | QMemArray<type> copy() const | ||
76 | { QMemArray<type> tmp; return tmp.duplicate(*this); } | ||
77 | QMemArray<type>& assign( const QMemArray<type>& a ) | ||
78 | { return (QMemArray<type>&)QGArray::assign(a); } | ||
79 | QMemArray<type>& assign( const type *a, uint n ) | ||
80 | { return (QMemArray<type>&)QGArray::assign((char*)a,n*sizeof(type)); } | ||
81 | QMemArray<type>& duplicate( const QMemArray<type>& a ) | ||
82 | { return (QMemArray<type>&)QGArray::duplicate(a); } | ||
83 | QMemArray<type>& duplicate( const type *a, uint n ) | ||
84 | { return (QMemArray<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); } | ||
85 | QMemArray<type>& setRawData( const type *a, uint n ) | ||
86 | { return (QMemArray<type>&)QGArray::setRawData((char*)a, | ||
87 | n*sizeof(type)); } | ||
88 | void resetRawData( const type *a, uint n ) | ||
89 | { QGArray::resetRawData((char*)a,n*sizeof(type)); } | ||
90 | int find( const type &d, uint i=0 ) const | ||
91 | { return QGArray::find((char*)&d,i,sizeof(type)); } | ||
92 | int contains( const type &d ) const | ||
93 | { return QGArray::contains((char*)&d,sizeof(type)); } | ||
94 | void sort() { QGArray::sort(sizeof(type)); } | ||
95 | int bsearch( const type &d ) const | ||
96 | { return QGArray::bsearch((const char*)&d,sizeof(type)); } | ||
97 | // ### Qt 4.0: maybe provide uint overload as work-around for MSVC bug | ||
98 | type& operator[]( int i ) const | ||
99 | { return (type &)(*(type *)QGArray::at(i*sizeof(type))); } | ||
100 | type& at( uint i ) const | ||
101 | { return (type &)(*(type *)QGArray::at(i*sizeof(type))); } | ||
102 | operator const type*() const { return (const type *)QGArray::data(); } | ||
103 | bool operator==( const QMemArray<type> &a ) const { return isEqual(a); } | ||
104 | bool operator!=( const QMemArray<type> &a ) const { return !isEqual(a); } | ||
105 | Iterator begin() { return data(); } | ||
106 | Iterator end() { return data() + size(); } | ||
107 | ConstIterator begin() const { return data(); } | ||
108 | ConstIterator end() const { return data() + size(); } | ||
109 | }; | ||
110 | |||
111 | #if defined(Q_TEMPLATEDLL) | ||
112 | // MOC_SKIP_BEGIN | ||
113 | Q_TEMPLATE_EXTERN template class Q_EXPORT QMemArray<int>; | ||
114 | Q_TEMPLATE_EXTERN template class Q_EXPORT QMemArray<bool>; | ||
115 | // MOC_SKIP_END | ||
116 | #endif | ||
117 | |||
118 | #ifndef QT_NO_COMPAT | ||
119 | #define QArray QMemArray | ||
120 | #endif | ||
121 | |||
122 | #endif // QARRAY_H | ||