コード例 #1
0
 void ForbidDeletePreservingHistory(long dontTouchGeneration, long[] usedFilesFromOldGenerations)
 {
     for (var i = 0; i < _fileStats.Length; i++)
     {
         if (!_keyValueDB.ContainsValuesAndDoesNotTouchGeneration((uint)i, dontTouchGeneration) ||
             (usedFilesFromOldGenerations != null && Array.BinarySearch(usedFilesFromOldGenerations, _keyValueDB.GetGeneration((uint)i)) >= 0))
         {
             _fileStats[i].MarkForbidToDelete();
         }
     }
 }
コード例 #2
0
 void ForbidDeletePreservingHistory(long dontTouchGeneration, long[] usedFilesFromOldGenerations)
 {
     foreach (var fileStat in _fileStats.Index)
     {
         if (!_keyValueDB.ContainsValuesAndDoesNotTouchGeneration(_fileStats.KeyRef(fileStat), dontTouchGeneration) ||
             (usedFilesFromOldGenerations != null && Array.BinarySearch(usedFilesFromOldGenerations,
                                                                        _keyValueDB.GetGeneration(_fileStats.KeyRef(fileStat))) >= 0))
         {
             _fileStats.ValueRef(fileStat).MarkForbidToDelete();
         }
     }
 }
コード例 #3
0
ファイル: Compactor.cs プロジェクト: pavolpr/BTDB
 void InitFileStats(long dontTouchGeneration)
 {
     _fileStats = new FileStat[_keyValueDB.FileCollection.FileInfos.Max(f => f.Key) + 1];
     foreach (var file in _keyValueDB.FileCollection.FileInfos)
     {
         if (file.Key >= _fileStats.Length)
         {
             continue;
         }
         if (file.Value.SubDBId != 0)
         {
             continue;
         }
         if (!_keyValueDB.ContainsValuesAndDoesNotTouchGeneration(file.Key, dontTouchGeneration))
         {
             continue;
         }
         _fileStats[file.Key] = new FileStat((uint)_keyValueDB.FileCollection.GetSize(file.Key));
     }
 }