Source Code (Use browser search to find items of interest.)
Class Index
qt'QCList (./qt-2.1.0/src/tools/qgcache.cpp:64)
class QCList : private QList<QCacheItem>
{
friend class QGCacheIterator;
friend class QCListIt;
public:
QCList() {}
~QCList();
void insert( QCacheItem * ); // insert according to priority
void insert( int, QCacheItem * );
void take( QCacheItem * );
void reference( QCacheItem * );
void setAutoDelete( bool del ) { QCollection::setAutoDelete(del); }
bool removeFirst() { return QList<QCacheItem>::removeFirst(); }
bool removeLast() { return QList<QCacheItem>::removeLast(); }
QCacheItem *first() { return QList<QCacheItem>::first(); }
QCacheItem *last() { return QList<QCacheItem>::last(); }
QCacheItem *prev() { return QList<QCacheItem>::prev(); }
QCacheItem *next() { return QList<QCacheItem>::next(); }
#if defined(DEBUG)
int inserts; // variables for statistics
int insertCosts;
int insertMisses;
int finds;
int hits;
int hitCosts;
int dumps;
int dumpCosts;
#endif
};
QCList::~QCList()
{
#if defined(DEBUG)
ASSERT( count() == 0 );
#endif
}
void QCList::insert( QCacheItem *ci )
{
QCacheItem *item = first();
while( item && item->skipPriority > ci->priority ) {
item->skipPriority--;
item = next();
}
if ( item )
QList<QCacheItem>::insert( at(), ci );
else
append( ci );
#if defined(DEBUG)
ASSERT( ci->node == 0 );
#endif
ci->node = currentNode();
}
inline void QCList::insert( int i, QCacheItem *ci )
{
QList<QCacheItem>::insert( i, ci );
#if defined(DEBUG)
ASSERT( ci->node == 0 );
#endif
ci->node = currentNode();
}
void QCList::take( QCacheItem *ci )
{
if ( ci ) {
#if defined(DEBUG)
ASSERT( ci->node != 0 );
#endif
takeNode( ci->node );
ci->node = 0;
}
}
inline void QCList::reference( QCacheItem *ci )
{
#if defined(DEBUG)
ASSERT( ci != 0 && ci->node != 0 );
#endif
ci->skipPriority = ci->priority;
relinkNode( ci->node ); // relink as first item
}
qt'QCList::reference() (./qt-2.1.0/src/tools/qgcache.cpp:147)
inline void QCList::reference( QCacheItem *ci )
{
#if defined(DEBUG)
ASSERT( ci != 0 && ci->node != 0 );
#endif
ci->skipPriority = ci->priority;
relinkNode( ci->node ); // relink as first item
}