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
}
}
|