Пример #1
0
        public DiskBackend(string filename, long filesize, ICacheBackend fallback)
        {
            this.fallback = fallback;
            usedSize      = 0;
            maxFileSize   = filesize;

            FileInfo fi = new FileInfo(filename);

            FreeList.AddLast(new FileSegment(0, long.MaxValue));

            dataFile  = filename;
            indexFile = dataFile + ".index";

            // create the file if it doesnt exist
            if (!File.Exists(filename))
            {
                using (FileStream fs = File.Create(filename))
                {
                    // do nothing
                }
            }
            try
            {
                LoadIndex();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                // clear the index
                data.Clear();
                FreeList.Clear();
                FreeList.AddLast(new FileSegment(0, long.MaxValue));
            }
        }
Пример #2
0
 public void Dispose()
 {
     if (backend is IDisposable)
     {
         ((IDisposable)backend).Dispose();
     }
     backend = null;
 }
Пример #3
0
 public AbstractCacheFrontend(string identifier, ICacheBackend backend)
 {
     this.identifier = identifier;
     this.backend    = backend;
 }
Пример #4
0
 public MemoryBackend(int max, ICacheBackend fb)
 {
     this.max = max;
     fallback = fb;
 }
Пример #5
0
 public StringFrontend(string identifier, ICacheBackend backend) : base(identifier, backend)
 {
 }
Пример #6
0
 public Cache(ICacheBackend backend)
 {
     this.backend = backend;
 }