[not part of build] Added simple enumeration mechanism to nsCacheEntryHashtable.

This commit is contained in:
beard%netscape.com 2001-03-10 00:43:20 +00:00
Родитель cea152bf84
Коммит 644891e9a1
2 изменённых файлов: 32 добавлений и 2 удалений

18
netwerk/cache/src/nsCacheEntry.cpp поставляемый
Просмотреть файл

@ -389,6 +389,24 @@ nsCacheEntryHashTable::RemoveEntry( nsCacheEntry *cacheEntry)
}
void
nsCacheEntryHashTable::VisitEntries( nsCacheEntryHashTable::Visitor *visitor)
{
PL_DHashTableEnumerate(&table, VisitEntry, visitor);
}
PLDHashOperator
nsCacheEntryHashTable::VisitEntry(PLDHashTable *table,
PLDHashEntryHdr *hashEntry,
PRUint32 number,
void *arg)
{
nsCacheEntry *cacheEntry = ((nsCacheEntryHashTableEntry *)hashEntry)->cacheEntry;
nsCacheEntryHashTable::Visitor *visitor = (nsCacheEntryHashTable::Visitor*) arg;
return (visitor->VisitEntry(cacheEntry) ? PL_DHASH_NEXT : PL_DHASH_STOP);
}
/**
* hash table operation callback functions
*/

16
netwerk/cache/src/nsCacheEntry.h поставляемый
Просмотреть файл

@ -201,8 +201,15 @@ public:
nsCacheEntry *GetEntry( const nsCString * key);
nsresult AddEntry( nsCacheEntry *entry);
void RemoveEntry( nsCacheEntry *entry);
// XXX enumerate entries?
class Visitor {
public:
virtual PRBool VisitEntry( nsCacheEntry *entry) = 0;
};
void VisitEntries( Visitor *visitor);
private:
// PLDHashTable operation callbacks
@ -227,7 +234,12 @@ private:
PLDHashEntryHdr * hdr,
PRUint32 number,
void * arg);
static
PLDHashOperator VisitEntry(PLDHashTable * table,
PLDHashEntryHdr * hdr,
PRUint32 number,
void * arg);
// member variables
static PLDHashTableOps ops;
PLDHashTable table;