📄 qgcache.h
字号:
/****************************************************************************** $Id: qt/src/tools/qgcache.h 2.3.6 edited 2001-01-26 $**** Definition of QGCache and QGCacheIterator classes**** Created : 950208**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of the tools module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for** information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QGCACHE_H#define QGCACHE_H#ifndef QT_H#include "qcollection.h"#include "qglist.h"#include "qgdict.h"#endif // QT_Hclass QCList; // internal classesclass QCListIt;class QCDict;class Q_EXPORT QGCache : public QCollection // generic LRU cache{friend class QGCacheIterator;protected: enum KeyType { StringKey, AsciiKey, IntKey, PtrKey }; // identical to QGDict's, but PtrKey is not used at the moment QGCache( int maxCost, uint size, KeyType kt, bool caseSensitive, bool copyKeys ); QGCache( const QGCache & ); // not allowed, calls fatal() ~QGCache(); QGCache &operator=( const QGCache & ); // not allowed, calls fatal() uint count() const { return ((QGDict*)dict)->count(); } uint size() const { return ((QGDict*)dict)->size(); } int maxCost() const { return mCost; } int totalCost() const { return tCost; } void setMaxCost( int maxCost ); void clear(); bool insert_string( const QString &key, QCollection::Item, int cost, int priority ); bool insert_other( const char *key, QCollection::Item, int cost, int priority ); bool remove_string( const QString &key ); bool remove_other( const char *key ); QCollection::Item take_string( const QString &key ); QCollection::Item take_other( const char *key ); QCollection::Item find_string( const QString &key, bool ref=TRUE ) const; QCollection::Item find_other( const char *key, bool ref=TRUE ) const; void statistics() const;private: bool makeRoomFor( int cost, int priority = -1 ); KeyType keytype; QCList *lruList; QCDict *dict; int mCost; int tCost; bool copyk;};class Q_EXPORT QGCacheIterator // generic cache iterator{protected: QGCacheIterator( const QGCache & ); QGCacheIterator( const QGCacheIterator & ); ~QGCacheIterator(); QGCacheIterator &operator=( const QGCacheIterator & ); uint count() const; bool atFirst() const; bool atLast() const; QCollection::Item toFirst(); QCollection::Item toLast(); QCollection::Item get() const; QString getKeyString() const; const char *getKeyAscii() const; long getKeyInt() const; QCollection::Item operator()(); QCollection::Item operator++(); QCollection::Item operator+=( uint ); QCollection::Item operator--(); QCollection::Item operator-=( uint );protected: QCListIt *it; // iterator on cache list};#endif // QGCACHE_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -