Eneboo - Documentación para desarrolladores
src/qt/src/tools/qstrvec.h
Ir a la documentación de este archivo.
00001 /****************************************************************************
00002 ** $Id: qt/qstrvec.h   3.3.8   edited Jan 11 14:38 $
00003 **
00004 ** Definition of QStrVec and QStrIVec classes
00005 **
00006 ** Created : 931203
00007 **
00008 ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
00009 **
00010 ** This file is part of the tools module of the Qt GUI Toolkit.
00011 **
00012 ** This file may be distributed under the terms of the Q Public License
00013 ** as defined by Trolltech ASA of Norway and appearing in the file
00014 ** LICENSE.QPL included in the packaging of this file.
00015 **
00016 ** This file may be distributed and/or modified under the terms of the
00017 ** GNU General Public License version 2 as published by the Free Software
00018 ** Foundation and appearing in the file LICENSE.GPL included in the
00019 ** packaging of this file.
00020 **
00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
00022 ** licenses may use this file in accordance with the Qt Commercial License
00023 ** Agreement provided with the Software.
00024 **
00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00027 **
00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
00029 **   information about Qt Commercial License Agreements.
00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
00032 **
00033 ** Contact info@trolltech.com if any conditions of this licensing are
00034 ** not clear to you.
00035 **
00036 **********************************************************************/
00037 
00038 #ifndef QSTRVEC_H
00039 #define QSTRVEC_H
00040 
00041 #ifndef QT_H
00042 #include "qstring.h"
00043 #include "qptrvector.h"
00044 #include "qdatastream.h"
00045 #endif // QT_H
00046 
00047 class Q_EXPORT QStrVec : public QPtrVector<char>
00048 {
00049 public:
00050     QStrVec()  { dc = TRUE; }
00051     QStrVec( uint size, bool deepc = TRUE ) : QPtrVector<char>(size) {dc=deepc;}
00052    ~QStrVec()  { clear(); }
00053 private:
00054     Item         newItem( Item d )      { return dc ? qstrdup( (const char*)d ) : d; }
00055     void deleteItem( Item d )   { if ( dc ) delete[] (char*)d; }
00056     int  compareItems( Item s1, Item s2 )
00057                                 { return qstrcmp((const char*)s1,
00058                                                 (const char*)s2); }
00059 #ifndef QT_NO_DATASTREAM
00060     QDataStream &read( QDataStream &s, Item &d )
00061                                 { s >> (char *&)d; return s; }
00062     QDataStream &write( QDataStream &s, Item d ) const
00063                                 { return s << (const char*)d; }
00064 #endif
00065     bool dc;
00066 };
00067 
00068 
00069 class Q_EXPORT QStrIVec : public QStrVec        // case insensitive string vec
00070 {
00071 public:
00072     QStrIVec() {}
00073     QStrIVec( uint size, bool dc = TRUE ) : QStrVec( size, dc ) {}
00074    ~QStrIVec() { clear(); }
00075 private:
00076     int  compareItems( Item s1, Item s2 )
00077                                 { return qstricmp((const char*)s1,
00078                                                  (const char*)s2); }
00079 };
00080 
00081 
00082 #endif // QSTRVEC_H
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'