}
void
-cacheDigestAdd(CacheDigest * cd, const cache_key * key)
+CacheDigest::add(const cache_key * key)
{
- assert(cd && key);
+ assert(key);
/* hash */
- cacheDigestHashKey(cd, key);
+ cacheDigestHashKey(this, key);
/* turn on corresponding bits */
#if CD_FAST_ADD
- CBIT_SET(cd->mask, hashed_keys[0]);
- CBIT_SET(cd->mask, hashed_keys[1]);
- CBIT_SET(cd->mask, hashed_keys[2]);
- CBIT_SET(cd->mask, hashed_keys[3]);
+ CBIT_SET(mask, hashed_keys[0]);
+ CBIT_SET(mask, hashed_keys[1]);
+ CBIT_SET(mask, hashed_keys[2]);
+ CBIT_SET(mask, hashed_keys[3]);
#else
{
int on_xition_cnt = 0;
- if (!CBIT_TEST(cd->mask, hashed_keys[0])) {
- CBIT_SET(cd->mask, hashed_keys[0]);
+ if (!CBIT_TEST(mask, hashed_keys[0])) {
+ CBIT_SET(mask, hashed_keys[0]);
++on_xition_cnt;
}
- if (!CBIT_TEST(cd->mask, hashed_keys[1])) {
- CBIT_SET(cd->mask, hashed_keys[1]);
+ if (!CBIT_TEST(mask, hashed_keys[1])) {
+ CBIT_SET(mask, hashed_keys[1]);
++on_xition_cnt;
}
- if (!CBIT_TEST(cd->mask, hashed_keys[2])) {
- CBIT_SET(cd->mask, hashed_keys[2]);
+ if (!CBIT_TEST(mask, hashed_keys[2])) {
+ CBIT_SET(mask, hashed_keys[2]);
++on_xition_cnt;
}
- if (!CBIT_TEST(cd->mask, hashed_keys[3])) {
- CBIT_SET(cd->mask, hashed_keys[3]);
+ if (!CBIT_TEST(mask, hashed_keys[3])) {
+ CBIT_SET(mask, hashed_keys[3]);
++on_xition_cnt;
}
statCounter.cd.on_xition_count.count(on_xition_cnt);
}
#endif
- ++ cd->count;
+ ++count;
}
void
-cacheDigestDel(CacheDigest * cd, const cache_key * key)
+CacheDigest::remove(const cache_key * key)
{
- assert(cd && key);
- ++ cd->del_count;
+ assert(key);
+ ++del_count;
/* we do not support deletions from the digest */
}
/// changes mask size to fit newCapacity, resets bits to 0
void updateCapacity(int newCapacity);
+ void add(const cache_key * key);
+ void remove(const cache_key * key);
+
/// \returns true if the key belongs to the digest
bool test(const cache_key * key) const;
int del_count; /* number of deletions performed so far */
};
-void cacheDigestAdd(CacheDigest * cd, const cache_key * key);
-void cacheDigestDel(CacheDigest * cd, const cache_key * key);
int cacheDigestBitUtil(const CacheDigest * cd);
void cacheDigestGuessStatsUpdate(CacheDigestGuessStats * stats, int real_hit, int guess_hit);
void cacheDigestGuessStatsReport(const CacheDigestGuessStats * stats, StoreEntry * sentry, const char *label);
debugs(71, 6, "storeDigestDel: lost entry, key: " << entry->getMD5Text() << " url: " << entry->url() );
} else {
++sd_stats.del_count;
- cacheDigestDel(store_digest, (const cache_key *)entry->key);
+ store_digest->remove(static_cast<const cache_key *>(entry->key));
debugs(71, 6, "storeDigestDel: deled entry, key: " << entry->getMD5Text());
}
}
if (store_digest->test(static_cast<const cache_key *>(entry->key)))
++sd_stats.add_coll_count;
- cacheDigestAdd(store_digest, (const cache_key *)entry->key);
+ store_digest->add(static_cast<const cache_key *>(entry->key));
debugs(71, 6, "storeDigestAdd: added entry, key: " << entry->getMD5Text());
} else {
hash_first(hash);
while ((e = (CacheEntry *)hash_next(hash))) {
- cacheDigestAdd(cache->digest, e->key);
+ cache->digest->add(e->key);
}
gettimeofday(&t_end, NULL);
hash_remove_link(cache->hash, (hash_link *) olde);
if (update_digest)
- cacheDigestDel(cache->digest, s->key);
+ cache->digest->remove(s->key);
cacheEntryDestroy(olde);
++ cache->count;
if (update_digest)
- cacheDigestAdd(cache->digest, e->key);
+ cache->digest->add(e->key);
}
}
void CacheDigest::clear() STUB
void CacheDigest::updateCapacity(int) STUB
bool CacheDigest::test(const cache_key *) const STUB_RETVAL(false)
-void cacheDigestAdd(CacheDigest *, const cache_key *) STUB
-void cacheDigestDel(CacheDigest *, const cache_key *) STUB
+void CacheDigest::add(const cache_key *) STUB
+void CacheDigest::remove(const cache_key *) STUB
int cacheDigestBitUtil(const CacheDigest *) STUB_RETVAL(0)
void cacheDigestGuessStatsUpdate(CacheDigestGuessStats *, int, int) STUB
void cacheDigestGuessStatsReport(const CacheDigestGuessStats *, StoreEntry *, const char *) STUB