/// <summary> /// <para>Initialises this instance with the given components.</para> /// </summary> /// <param name="replacementPolicy"> /// An <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// An <see cref="ICacheBackingStore"/> /// </param> /// <param name="defaultItemPolicy"> /// An <see cref="IItemPolicy"/> /// </param> public EntityCacheBase(IReplacementPolicy replacementPolicy, ICacheBackingStore backingStore, IItemPolicy defaultItemPolicy) { _disposed = false; this.SyncRoot = new ReaderWriterLockSlim(); this.ItemPolicies = new Dictionary <IIdentity, IItemPolicy>(); this.ReplacementPolicy = replacementPolicy; this.BackingStore = backingStore; this.DefaultItemPolicy = defaultItemPolicy; this.CacheHit += this.ReplacementPolicy.HandleCacheEvent; this.CacheMiss += this.ReplacementPolicy.HandleCacheEvent; this.ItemAdded += this.ReplacementPolicy.HandleCacheEvent; this.ItemRemoved += this.ReplacementPolicy.HandleCacheEvent; }
/// <summary> /// <para>Initialises this instance, including a default item policy.</para> /// </summary> /// <param name="policy"> /// A <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// A <see cref="ICacheBackingStore"/> /// </param> /// <param name="defaultItemPolicy"> /// A <see cref="IItemPolicy"/> /// </param> public InlineEntityCache (IReplacementPolicy policy, ICacheBackingStore backingStore, IItemPolicy defaultItemPolicy) : base(policy, backingStore, defaultItemPolicy) { this.ItemAdded += HandleItemAdded; }
/// <summary> /// <para>Initialises this instance.</para> /// </summary> /// <param name="policy"> /// A <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// A <see cref="ICacheBackingStore"/> /// </param> public InlineEntityCache (IReplacementPolicy policy, ICacheBackingStore backingStore) : this(policy, backingStore, null) {}
/// <summary> /// <para>Initialises this instance, including a default item policy.</para> /// </summary> /// <param name="policy"> /// A <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// A <see cref="ICacheBackingStore"/> /// </param> /// <param name="defaultItemPolicy"> /// A <see cref="IItemPolicy"/> /// </param> public InlineEntityCache(IReplacementPolicy policy, ICacheBackingStore backingStore, IItemPolicy defaultItemPolicy) : base(policy, backingStore, defaultItemPolicy) { this.ItemAdded += HandleItemAdded; }
/// <summary> /// <para>Initialises this instance.</para> /// </summary> /// <param name="policy"> /// A <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// A <see cref="ICacheBackingStore"/> /// </param> public InlineEntityCache(IReplacementPolicy policy, ICacheBackingStore backingStore) : this(policy, backingStore, null) { }
/// <summary> /// <para>Initialises this instance with the given components.</para> /// </summary> /// <param name="replacementPolicy"> /// An <see cref="IReplacementPolicy"/> /// </param> /// <param name="backingStore"> /// An <see cref="ICacheBackingStore"/> /// </param> /// <param name="defaultItemPolicy"> /// An <see cref="IItemPolicy"/> /// </param> public EntityCacheBase (IReplacementPolicy replacementPolicy, ICacheBackingStore backingStore, IItemPolicy defaultItemPolicy) { _disposed = false; this.SyncRoot = new ReaderWriterLockSlim(); this.ItemPolicies = new Dictionary<IIdentity, IItemPolicy>(); this.ReplacementPolicy = replacementPolicy; this.BackingStore = backingStore; this.DefaultItemPolicy = defaultItemPolicy; this.CacheHit += this.ReplacementPolicy.HandleCacheEvent; this.CacheMiss += this.ReplacementPolicy.HandleCacheEvent; this.ItemAdded += this.ReplacementPolicy.HandleCacheEvent; this.ItemRemoved += this.ReplacementPolicy.HandleCacheEvent; }