public RecentlyUsedStrategy(CacheGeometry cacheGeometry, Func <long, long, bool> comparisonOperator) { comparisonOperator_ = comparisonOperator; cacheGeometry_ = cacheGeometry; registry_ = new List <long[]>(); for (int i = 0; i < cacheGeometry_.NumberOfWays; ++i) { long[] arr = new long[cacheGeometry.LinesPerSet]; registry_.Add(arr); } }
static ICacheController <int> CreateController() { databaseStorage_.database_.Clear(); FillDatabaseTest(); CacheGeometry cacheGeometry = new CacheGeometry(numberOfWays: kNumberOfWays , linesDegree: kLinesDegree , wordsInLine: kWordsInLine , wordSize: kWordSize , 2); IReplacementStrategy <int> replacementStrategy = new LRUStrategy <int>(cacheGeometry); ICacheController <int> cacheController = CacheFactory <int> .Create(cacheGeometry, databaseStorage_, replacementStrategy); return(cacheController); }
protected override ICacheController <int> CreateController() { databaseStorage_ = new DatabaseStorageMock <int, string>(); FillDatabaseTest(); CacheGeometry cacheGeometry = new CacheGeometry(numberOfWays: kNumberOfWays , linesDegree: kLinesDegree , wordsInLine: kWordsInLine , wordSize: kWordSize , 2); IReplacementStrategy <int> replacementStrategy = new LRUStrategy <int>(cacheGeometry); ICacheController <int> cacheController = CacheFactory <int> .Create(cacheGeometry, databaseStorage_, replacementStrategy); return(cacheController); }
public CacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage) { cache_ = new Cache <Tag>(cacheGeometry); storage_ = storage; }
public MRUStrategy(CacheGeometry cacheGeometry) : base(cacheGeometry, Functor.Greater <long>()) { }
public LRUStrategy(CacheGeometry cacheGeometry) : base(cacheGeometry, Functor.Less <long>()) { }
public AroundCacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage) : base(cacheGeometry, storage) { }
public AllocateCacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage) : base(cacheGeometry, storage) { }