This class represents a simple in‐process key‐value store supporting a variety of eviction policies.

Synopsis

Declared in <bdlcc_cache.h>

template<
    class KEY,
    class VALUE,
    class HASH = bsl::hash<KEY>,
    class EQUAL = bsl::equal_to<KEY>>
class Cache;

Type Aliases

Name

Description

KVType

Value type of a bulk insert entry.

PostEvictionCallback

Type of function to call after an item has been evicted from the cache.

ValuePtrType

Shared pointer type pointing to value type.

Member Functions

Name

Description

Cache [constructor]

Constructors

clear

Remove all items from this cache. Do not invoke the post‐eviction callback.

equalFunction

Return (a copy of) the key‐equality functor used by this cache that returns true if two KEY objects have the same value, and false otherwise.

erase

Remove the item having the specified key from this cache.

eraseBulk

eraseBulk overloads

evictionPolicy

Return the eviction policy used by this cache.

hashFunction

Return (a copy of) the unary hash functor used by this cache to generate a hash value (of type std::size_t) for a KEY object.

highWatermark

Return the high watermark of this cache, which is the size at which eviction of existing items begins.

insert

insert overloads

insertBulk

insertBulk overloads

lowWatermark

Return the low watermark of this cache, which is the size at which eviction of existing items ends.

popFront

Remove the item at the front of the eviction queue. Invoke the post‐eviction callback for the removed item. Return 0 on success, and 1 if this cache is empty.

setPostEvictionCallback

Set the post‐eviction callback to the specified postEvictionCallback.

size

Return the current size of this cache.

tryGetValue

Load the value associated with the specified key into value.

visit

Call the specified visitor for every item in this cache.

Friends

Name

Description

BloombergLP::bdlcc::Cache_TestUtil

Test utility that exposes the cache RW‐mutex lock methods.

Created with MrDocs