1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex,noarchive"><title>
Qt Toolkit - qcache.h include file
</title><style type="text/css"><!--
h3.fn,span.fn { margin-left: 15%; text-indent: -15%; }
a:link { text-decoration: none; }
--></style>
</head><body bgcolor="#ffffff">
<a href=index.html><img width=122 height=65 src=qtlogo.jpg alt="Qt logo" align=left border=0></a>
<center><img src=dochead.gif width=472 height=27></center>
<br clear=all>
<h1 align=center>qcache.h</h1><br clear="all">
This is the verbatim text of the qcache.h include file. It is is
provided only for illustration; the copyright
remains with Troll Tech.
<hr>
<pre>
/****************************************************************************
** $Id: qcache.h,v 2.3.2.2 1998/08/27 08:14:00 hanord Exp $
**
** Definition of QCache template/macro class
**
** Created : 950209
**
** Copyright (C) 1992-1999 Troll Tech AS. All rights reserved.
**
** This file is part of Qt Free Edition, version 1.45.
**
** See the file LICENSE included in the distribution for the usage
** and distribution terms, or http://www.troll.no/free-license.html.
**
** IMPORTANT NOTE: You may NOT copy this file or any part of it into
** your own programs or libraries.
**
** Please see http://www.troll.no/pricing.html for information about
** Qt Professional Edition, which is this same library but with a
** license which allows creation of commercial/proprietary software.
**
*****************************************************************************/
#ifndef QCACHE_H
#define QCACHE_H
#ifndef QT_H
#include "qgcache.h"
#endif // QT_H
#if defined(USE_MACROCLASS)
#include "qgeneric.h"
#if !defined(name2)
#define name2(a,b) name2_xx(a,b)
#define name2_xx(a,b) a##b
#endif
#if defined(DEFAULT_MACROCLASS)
#define QCachedeclare QCacheMdeclare
#define QCache QCacheM
#endif
#define QCacheM(type) name2(QCacheM_,type)
#define QCacheMdeclare(type) \
class Q_EXPORTM QCacheM(type) : public QGCache \
{ \
public: \
QCacheM(type)( const QCacheM(type) &c ) : QGCache(c) {} \
QCacheM(type)( int maxCost=100, int size=17, bool cs=TRUE,bool ck=TRUE ) \
: QGCache( maxCost, size, cs, ck, FALSE ) {} \
~QCacheM(type)() { clear(); } \
QCacheM(type) &operator=( const QCacheM(type) &c ) \
{ return (QCacheM(type)&)QGCache::operator=(c); } \
int maxCost() const { return QGCache::maxCost(); } \
int totalCost() const { return QGCache::totalCost(); } \
void setMaxCost( int m ) { QGCache::setMaxCost(m); } \
uint count() const { return QGCache::count(); } \
uint size() const { return QGCache::size(); } \
bool isEmpty() const { return QGCache::count() == 0; } \
bool insert( const char *k, const type *d, int c=1, int p=0 ) \
{ return QGCache::insert(k,(GCI)d,c,p);}\
bool remove( const char *k ) { return QGCache::remove(k); } \
type *take( const char *k ) { return (type *)QGCache::take(k); } \
void clear() { QGCache::clear(); } \
type *find( const char *k, bool ref=TRUE ) const \
{ return (type *)QGCache::find(k,ref);}\
type *operator[]( const char *k ) const \
{ return (type *)QGCache::find(k); } \
void statistics() const { QGCache::statistics(); } \
private: \
void deleteItem( GCI d ) { if ( del_item ) delete (type *)d; } \
}
#if defined(DEFAULT_MACROCLASS)
#define QCacheIteratordeclare QCacheIteratorMdeclare
#define QCacheIterator QCacheIteratorM
#endif
#define QCacheIteratorM(type) name2(QCacheIteratorM_,type)
#define QCacheIteratorMdeclare(type) \
class Q_EXPORTM QCacheIteratorM(type) : public QGCacheIterator \
{ \
public: \
QCacheIteratorM(type)( const QCacheM(type) &c ) \
: QGCacheIterator( (QGCache &)c ) {} \
QCacheIteratorM(type)( const QCacheIteratorM(type) &ci ) \
: QGCacheIterator( (QGCacheIterator &)ci ) {} \
QCacheIteratorM(type) &operator=(const QCacheIteratorM(type)&ci) \
{ return (QCacheIteratorM(type)&)QGCacheIterator::operator=( ci ); } \
uint count() const { return QGCacheIterator::count(); } \
bool isEmpty() const { return QGCacheIterator::count() == 0; } \
bool atFirst() const { return QGCacheIterator::atFirst(); } \
bool atLast() const { return QGCacheIterator::atLast(); } \
type *toFirst() { return (type *)QGCacheIterator::toFirst(); } \
type *toLast() { return (type *)QGCacheIterator::toLast(); } \
operator type *() const { return (type *)QGCacheIterator::get(); } \
type *current() const { return (type *)QGCacheIterator::get(); } \
const char *currentKey() const \
{ return QGCacheIterator::getKey();} \
type *operator()() { return (type *)QGCacheIterator::operator()();} \
type *operator++() { return (type *)QGCacheIterator::operator++();} \
type *operator+=(uint j) { return (type *)QGCacheIterator::operator+=(j);}\
type *operator--() { return (type *)QGCacheIterator::operator--();} \
type *operator-=(uint j) { return (type *)QGCacheIterator::operator-=(j);}\
}
#endif // USE_MACROCLASS
#if defined(USE_TEMPLATECLASS)
#if defined(DEFAULT_TEMPLATECLASS)
#undef QCache
#define QCache QCacheT
#endif
template<class type> class Q_EXPORT QCacheT : public QGCache
{
public:
QCacheT( const QCacheT<type> &c ) : QGCache(c) {}
QCacheT( int maxCost=100, int size=17, bool cs=TRUE, bool ck=TRUE )
: QGCache( maxCost, size, cs, ck, FALSE ) {}
~QCacheT() { clear(); }
QCacheT<type> &operator=( const QCacheT<type> &c )
{ return (QCacheT<type>&)QGCache::operator=(c); }
int maxCost() const { return QGCache::maxCost(); }
int totalCost() const { return QGCache::totalCost(); }
void setMaxCost( int m ) { QGCache::setMaxCost(m); }
uint count() const { return QGCache::count(); }
uint size() const { return QGCache::size(); }
bool isEmpty() const { return QGCache::count() == 0; }
bool insert( const char *k, const type *d, int c=1, int p=0 )
{ return QGCache::insert(k,(GCI)d,c,p);}
bool remove( const char *k ) { return QGCache::remove(k); }
type *take( const char *k ) { return (type *)QGCache::take(k); }
void clear() { QGCache::clear(); }
type *find( const char *k, bool ref=TRUE ) const
{ return (type *)QGCache::find(k,ref);}
type *operator[]( const char *k ) const
{ return (type *)QGCache::find(k);}
void statistics() const { QGCache::statistics(); }
private:
void deleteItem( GCI d ) { if ( del_item ) delete (type *)d; }
};
#if defined(DEFAULT_TEMPLATECLASS)
#undef QCacheIterator
#define QCacheIterator QCacheIteratorT
#endif
template<class type> class Q_EXPORT QCacheIteratorT : public QGCacheIterator
{
public:
QCacheIteratorT( const QCacheT<type> &c ):QGCacheIterator((QGCache &)c) {}
QCacheIteratorT( const QCacheIteratorT<type> &ci)
: QGCacheIterator( (QGCacheIterator &)ci ) {}
QCacheIteratorT<type> &operator=(const QCacheIteratorT<type>&ci)
{ return ( QCacheIteratorT<type>&)QGCacheIterator::operator=( ci ); }
uint count() const { return QGCacheIterator::count(); }
bool isEmpty() const { return QGCacheIterator::count() == 0; }
bool atFirst() const { return QGCacheIterator::atFirst(); }
bool atLast() const { return QGCacheIterator::atLast(); }
type *toFirst() { return (type *)QGCacheIterator::toFirst(); }
type *toLast() { return (type *)QGCacheIterator::toLast(); }
operator type *() const { return (type *)QGCacheIterator::get(); }
type *current() const { return (type *)QGCacheIterator::get(); }
const char *currentKey() const
{ return QGCacheIterator::getKey();}
type *operator()() { return (type *)QGCacheIterator::operator()();}
type *operator++() { return (type *)QGCacheIterator::operator++(); }
type *operator+=(uint j) { return (type *)QGCacheIterator::operator+=(j);}
type *operator--() { return (type *)QGCacheIterator::operator--(); }
type *operator-=(uint j) { return (type *)QGCacheIterator::operator-=(j);}
};
#endif // USE_TEMPLATECLASS
#endif // QCACHE_H
</pre>
<p><address><hr><div align="center">
<table width="100%" cellspacing="0" border="0"><tr>
<td>Copyright 1999 Troll Tech<td><a href="trademarks.html">Trademarks</a>
<td align="right"><div align="right">Qt version 1.45</div>
</table></div></address></body></html>
|