Chameleon

Chameleon Svn Source Tree

Root/branches/xZenu/src/util/doxygen/qtools/qarray.h

Source at commit 1322 created 12 years 8 months ago.
By meklort, Add doxygen to utils folder
1/****************************************************************************
2**
3**
4** Definition of QArray 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 QARRAY_H
39#define QARRAY_H
40
41#ifndef QT_H
42#include "qgarray.h"
43#endif // QT_H
44
45
46template<class type> class Q_EXPORT QArray : public QGArray
47{
48public:
49 typedef type* Iterator;
50 typedef const type* ConstIterator;
51 typedef type ValueType;
52
53protected:
54 QArray( int, int ) : QGArray( 0, 0 ) {}
55
56public:
57 QArray() {}
58 QArray( int size ) : QGArray(size*sizeof(type)) {}
59 QArray( const QArray<type> &a ) : QGArray(a) {}
60 ~QArray() {}
61 QArray<type> &operator=(const QArray<type> &a)
62{ return (QArray<type>&)QGArray::assign(a); }
63 type *data() const{ return (type *)QGArray::data(); }
64 uint nrefs() const{ return QGArray::nrefs(); }
65 uint size() const{ return QGArray::size()/sizeof(type); }
66 uint count() const { return size(); }
67 bool isEmpty() const{ return QGArray::size() == 0; }
68 bool isNull() const{ return QGArray::data() == 0; }
69 bool resize( uint size ){ return QGArray::resize(size*sizeof(type)); }
70 bool truncate( uint pos ){ return QGArray::resize(pos*sizeof(type)); }
71 bool fill( const type &d, int size = -1 )
72{ return QGArray::fill((char*)&d,size,sizeof(type) ); }
73 void detach(){ QGArray::detach(); }
74 QArray<type> copy() const
75{ QArray<type> tmp; return tmp.duplicate(*this); }
76 QArray<type>& assign( const QArray<type>& a )
77{ return (QArray<type>&)QGArray::assign(a); }
78 QArray<type>& assign( const type *a, uint n )
79{ return (QArray<type>&)QGArray::assign((char*)a,n*sizeof(type)); }
80 QArray<type>& duplicate( const QArray<type>& a )
81{ return (QArray<type>&)QGArray::duplicate(a); }
82 QArray<type>& duplicate( const type *a, uint n )
83{ return (QArray<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); }
84 QArray<type>& setRawData( const type *a, uint n )
85{ return (QArray<type>&)QGArray::setRawData((char*)a,
86 n*sizeof(type)); }
87 void resetRawData( const type *a, uint n )
88{ QGArray::resetRawData((char*)a,n*sizeof(type)); }
89 int find( const type &d, uint i=0 ) const
90{ return QGArray::find((char*)&d,i,sizeof(type)); }
91 int contains( const type &d ) const
92{ return QGArray::contains((char*)&d,sizeof(type)); }
93 void sort() { QGArray::sort(sizeof(type)); }
94 int bsearch( const type &d ) const
95{ return QGArray::bsearch((const char*)&d,sizeof(type)); }
96 type& operator[]( int i ) const
97{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
98 type& at( uint i ) const
99{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
100 operator const type*() const { return (const type *)QGArray::data(); }
101 bool operator==( const QArray<type> &a ) const { return isEqual(a); }
102 bool operator!=( const QArray<type> &a ) const { return !isEqual(a); }
103 Iterator begin() { return data(); }
104 Iterator end() { return data() + size(); }
105 ConstIterator begin() const { return data(); }
106 ConstIterator end() const { return data() + size(); }
107};
108
109
110#endif // QARRAY_H
111

Archive Download this file

Revision: 1322