}
CacheDigest *
-cacheDigestClone(const CacheDigest * cd)
+CacheDigest::clone() const
{
CacheDigest *clone;
- assert(cd);
- clone = new CacheDigest(cd->capacity, cd->bits_per_entry);
- clone->count = cd->count;
- clone->del_count = cd->del_count;
- assert(cd->mask_size == clone->mask_size);
- memcpy(clone->mask, cd->mask, cd->mask_size);
+ clone = new CacheDigest(capacity, bits_per_entry);
+ clone->count = count;
+ clone->del_count = del_count;
+ assert(mask_size == clone->mask_size);
+ memcpy(clone->mask, mask, mask_size);
return clone;
}
CacheDigest(int capacity, int bpe);
~CacheDigest();
+ // NP: only used by broken unit-test
+ /// produce a new identical copy of the digest object
+ CacheDigest *clone() const;
+
public:
/* public, read-only */
char *mask; /* bit mask */
int del_count; /* number of deletions performed so far */
};
-CacheDigest *cacheDigestClone(const CacheDigest * cd);
void cacheDigestClear(CacheDigest * cd);
void cacheDigestChangeCap(CacheDigest * cd, int new_cap);
int cacheDigestTest(const CacheDigest * cd, const cache_key * key);
/* digest peer cache content */
cacheResetDigest(them);
- us->digest = cacheDigestClone(them->digest); /* @netw@ */
+ us->digest = them->digest->clone();
/* shift the time in access log to match ready_time */
fileIteratorSetCurTime(fis[0], ready_time);
#include "CacheDigest.h"
CacheDigest::CacheDigest(int, int) {STUB}
CacheDigest::~CacheDigest() {STUB}
-CacheDigest * cacheDigestClone(const CacheDigest *) STUB_RETVAL(NULL)
+CacheDigest *CacheDigest::clone() const STUB_RETVAL(nullptr)
void cacheDigestClear(CacheDigest * ) STUB
void cacheDigestChangeCap(CacheDigest *,int) STUB
int cacheDigestTest(const CacheDigest *, const cache_key *) STUB_RETVAL(1)