Table of Contents

Class LookupCache<K, T>

Namespace
Tlabs.Misc
Assembly
Tlabs.Core.dll

Cache optimized for concurrent lock free lookups (read).

public class LookupCache<K, T> : ICache<K, T> where K : notnull where T : class

Type Parameters

K
T
Inheritance
LookupCache<K, T>
Implements
ICache<K, T>
Inherited Members
Extension Methods

Remarks

Concurrent writes are supported but incur more overhead...

Constructors

LookupCache()

Default ctor.

public LookupCache()

LookupCache(IEnumerable<KeyValuePair<K, T>>)

Default ctor.

public LookupCache(IEnumerable<KeyValuePair<K, T>> data)

Parameters

data IEnumerable<KeyValuePair<K, T>>

Properties

Entries

Cached entries.

public IEnumerable<KeyValuePair<K, T>> Entries { get; }

Property Value

IEnumerable<KeyValuePair<K, T>>

Snapshot of the currently cached entries.

this[K]

Get or set value with key.

public T? this[K key] { get; set; }

Parameters

key K

Property Value

T

Cached entry or null if no value cached for key.

this[K, Func<T>]

Gets an already cached value for the given key or if no cached value exists adds the value returned from getValue.

public T? this[K key, Func<T> getValue] { get; }

Parameters

key K
getValue Func<T>

Property Value

T

The value for the key in the cache or the value returned from getValue.

Methods

Evict(K)

Evict entry with key.

public T? Evict(K key)

Parameters

key K

Returns

T

Evicted entry or null if no value cached for key.