add Name() to Cache

Summary: preparation for detecting Cache type. If SimCache, we then may trigger some command like "setSimCapacity()" with setOptions()

Test Plan: make all check

Reviewers: yiwu, sdong

Reviewed By: sdong

Subscribers: andrewkr, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D61953
This commit is contained in:
Aaron Gao 2016-08-12 14:16:57 -07:00
parent a297643f2e
commit e408e98c8c
4 changed files with 7 additions and 1 deletions

View File

@ -51,6 +51,9 @@ class Cache {
// Opaque handle to an entry stored in the cache.
struct Handle {};
// The type of the Cache
virtual const char* Name() const = 0;
// Insert a mapping from key->value into the cache and assign it
// the specified charge against the total cache capacity.
// If strict_capacity_limit is true and cache reaches its full capacity,

View File

@ -33,6 +33,8 @@ class SimCache : public Cache {
virtual ~SimCache() {}
virtual const char* Name() const override { return "SimCache"; }
// returns the maximum configured capacity of the simcache for simulation
virtual size_t GetSimCapacity() const = 0;

View File

@ -528,6 +528,7 @@ class LRUCache : public ShardedCache {
virtual ~LRUCache() { delete[] shards_; }
virtual const char* Name() const override { return "LRUCache"; }
virtual CacheShard* GetShard(int shard) override {
return reinterpret_cast<CacheShard*>(&shards_[shard]);
}

View File

@ -46,7 +46,7 @@ class ShardedCache : public Cache {
public:
ShardedCache(size_t capacity, int num_shard_bits, bool strict_capacity_limit);
virtual ~ShardedCache() = default;
virtual const char* Name() const override = 0;
virtual CacheShard* GetShard(int shard) = 0;
virtual const CacheShard* GetShard(int shard) const = 0;
virtual void* Value(Handle* handle) override = 0;