using System; using System.Runtime.Caching; namespace IStation { internal sealed partial class SharedMemoryCache : IMemoryCacheDirect { /// /// If key not found, sets a new cache item by key, function and optional eviction /// /// A unique identifier for the cache entry to insert /// A function to execute to get the value for the cache entry /// (Optional) An object that contains eviction details for the cache entry public void Add(string key, Func valueFunction, CacheItemPolicy policy = null) { if (!this.HasKey(key)) { this.Set(key, valueFunction, policy); } } /// /// If key not found, sets a new cache item by key, value and optional eviction /// /// A unique identifier for the cache entry to insert /// A function to execute to get the value for the cache entry /// (Optional) An object that contains eviction details for the cache entry public void Add(string key, object value, CacheItemPolicy policy = null) { if (!this.HasKey(key)) { this.Set(key, value, policy); } } } }