[Adapdev-commits] Adapdev/src/Adapdev.Cache/Scavengers AbsoluteExpirationScavenger.cs,1.2,1.3 Greate
Status: Beta
Brought to you by:
intesar66
Update of /cvsroot/adapdev/Adapdev/src/Adapdev.Cache/Scavengers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19977/src/Adapdev.Cache/Scavengers Added Files: AbsoluteExpirationScavenger.cs GreaterThanOrdinalScavenger.cs IScavenger.cs LIFONumberScavenger.cs SlidingExpirationScavenger.cs Log Message: Reposting to the repository after it got hosed --- NEW FILE: IScavenger.cs --- using System; namespace Adapdev.Cache.Scavengers { /// <summary> /// Summary description for IScavenger. /// </summary> public interface IScavenger { void Scavenge(ICache cache); } } --- NEW FILE: LIFONumberScavenger.cs --- using System; namespace Adapdev.Cache.Scavengers { /// <summary> /// Summary description for LIFOScavenger. /// </summary> public class LIFONumberScavenger : IScavenger { private int _num = 0; private LIFONumberScavenger(){} public LIFONumberScavenger(int numberOfItems) { this._num = numberOfItems; } #region IScavenger Members public void Scavenge(ICache cache) { CacheItem[] entries = cache.Entries; for(int i = entries.Length; i>= _num; i--) { CacheItem c = entries[i] as CacheItem; cache.Remove(c.ObjectType, c.Key); } } #endregion } } --- NEW FILE: SlidingExpirationScavenger.cs --- using System; namespace Adapdev.Cache.Scavengers { /// <summary> /// Summary description for DateScavenger. /// </summary> public class SlidingExpirationScavenger : IScavenger { private TimeSpan _timespan; private SlidingExpirationScavenger(){} public SlidingExpirationScavenger(TimeSpan timespan) { this._timespan = timespan; } #region IScavenger Members public void Scavenge(ICache cache) { DateTime span = DateTime.Now.Subtract(this._timespan); foreach(CacheItem item in cache.Entries) { if(item.Created < span) cache.Remove(item.ObjectType, item.Key); } } #endregion } } --- NEW FILE: AbsoluteExpirationScavenger.cs --- using System; namespace Adapdev.Cache.Scavengers { /// <summary> /// Summary description for DateScavenger. /// </summary> public class AbsoluteExpirationScavenger : IScavenger { private DateTime _date; private AbsoluteExpirationScavenger(){} public AbsoluteExpirationScavenger(DateTime dateTime) { this._date = dateTime; } #region IScavenger Members public void Scavenge(ICache cache) { foreach(CacheItem item in cache.Entries) { if(item.Created < this._date) cache.Remove(item.ObjectType, item.Key); } } #endregion } } --- NEW FILE: GreaterThanOrdinalScavenger.cs --- using System; namespace Adapdev.Cache.Scavengers { /// <summary> /// Summary description for GreaterThanOrdinalScavenger. /// </summary> public class GreaterThanOrdinalScavenger : IScavenger { private int _greaterThan = 0; private GreaterThanOrdinalScavenger(){} public GreaterThanOrdinalScavenger(int greaterThan) { _greaterThan = greaterThan; } #region IScavenger Members public void Scavenge(ICache cache) { foreach(CacheItem c in cache.Entries) { if(c.Ordinal > this._greaterThan) { cache.Remove(c.ObjectType, c.Key); } } } #endregion } } |