1 /****************************************************************************
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the Qt3Support module of the Qt Toolkit.
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
40 ****************************************************************************/
45 #include <Qt3Support/q3gdict.h>
51 QT_MODULE(Qt3SupportLight
)
56 : public Q3PtrCollection
62 Q3IntDict(int size
=17) : Q3GDict(size
,IntKey
,0,0) {}
63 Q3IntDict( const Q3IntDict
<type
> &d
) : Q3GDict(d
) {}
64 ~Q3IntDict() { clear(); }
65 Q3IntDict
<type
> &operator=(const Q3IntDict
<type
> &d
)
66 { return (Q3IntDict
<type
>&)Q3GDict::operator=(d
); }
67 uint
count() const { return Q3GDict::count(); }
68 uint
size() const { return Q3GDict::size(); }
69 bool isEmpty() const { return Q3GDict::count() == 0; }
70 void insert( long k
, const type
*d
)
71 { Q3GDict::look_int(k
,(Item
)d
,1); }
72 void replace( long k
, const type
*d
)
73 { Q3GDict::look_int(k
,(Item
)d
,2); }
74 bool remove( long k
) { return Q3GDict::remove_int(k
); }
75 type
*take( long k
) { return (type
*)Q3GDict::take_int(k
); }
76 type
*find( long k
) const
77 { return (type
*)((Q3GDict
*)this)->Q3GDict::look_int(k
,0,0); }
78 type
*operator[]( long k
) const
79 { return (type
*)((Q3GDict
*)this)->Q3GDict::look_int(k
,0,0); }
80 void clear() { Q3GDict::clear(); }
81 void resize( uint n
) { Q3GDict::resize(n
); }
82 void statistics() const { Q3GDict::statistics(); }
86 virtual QDataStream
& read( QDataStream
&, Q3PtrCollection::Item
& );
87 virtual QDataStream
& write( QDataStream
&, Q3PtrCollection::Item
) const;
91 void deleteItem( Item d
);
94 #if !defined(Q_BROKEN_TEMPLATE_SPECIALIZATION)
95 template<> inline void Q3IntDict
<void>::deleteItem( Q3PtrCollection::Item
)
100 template<class type
> inline void Q3IntDict
<type
>::deleteItem( Q3PtrCollection::Item d
)
102 if ( del_item
) delete (type
*)d
;
106 class Q3IntDictIterator
: public Q3GDictIterator
109 Q3IntDictIterator(const Q3IntDict
<type
> &d
) :Q3GDictIterator((Q3GDict
&)d
) {}
110 ~Q3IntDictIterator() {}
111 uint
count() const { return dict
->count(); }
112 bool isEmpty() const { return dict
->count() == 0; }
113 type
*toFirst() { return (type
*)Q3GDictIterator::toFirst(); }
114 operator type
*() const { return (type
*)Q3GDictIterator::get(); }
115 type
*current() const { return (type
*)Q3GDictIterator::get(); }
116 long currentKey() const { return Q3GDictIterator::getKeyInt(); }
117 type
*operator()() { return (type
*)Q3GDictIterator::operator()(); }
118 type
*operator++() { return (type
*)Q3GDictIterator::operator++(); }
119 type
*operator+=(uint j
) { return (type
*)Q3GDictIterator::operator+=(j
);}
126 #endif // Q3INTDICT_H