コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public CacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage)
 {
     cache_   = new Cache <Tag>(cacheGeometry);
     storage_ = storage;
 }
コード例 #5
0
 public MRUStrategy(CacheGeometry cacheGeometry)
     : base(cacheGeometry, Functor.Greater <long>())
 {
 }
コード例 #6
0
 public LRUStrategy(CacheGeometry cacheGeometry)
     : base(cacheGeometry, Functor.Less <long>())
 {
 }
コード例 #7
0
 public AroundCacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage)
     : base(cacheGeometry, storage)
 {
 }
コード例 #8
0
 public AllocateCacheController(CacheGeometry cacheGeometry, IStorage <Tag> storage)
     : base(cacheGeometry, storage)
 {
 }