Example #1
0
        public FileUsageStatsCollector(IObjectContainer db, bool collectSlots)
        {
            MiscCollectors = new Hashtable();
            RegisterBigSetCollector();
            _db = (LocalObjectContainer)db;
            byte blockSize = _db.BlockSize();

            _blockConverter = blockSize > 1 ? (IBlockConverter) new BlockSizeBlockConverter(blockSize
                                                                                            ) : (IBlockConverter) new DisabledBlockConverter();
            _slots = collectSlots ? (ISlotMap) new SlotMapImpl(_db.FileLength()) : (ISlotMap) new
                     NullSlotMap();
        }
Example #2
0
 public virtual FileUsageStats CollectStats()
 {
     _stats = new FileUsageStats(_db.FileLength(), FileHeaderUsage(), IdSystemUsage(),
                                 Freespace(), ClassMetadataUsage(), FreespaceUsage(), UuidUsage(), _slots, CommitTimestampUsage
                                     ());
     Sharpen.Util.ISet classRoots = ClassNode.BuildHierarchy(_db.ClassCollection());
     for (IEnumerator classRootIter = classRoots.GetEnumerator(); classRootIter.MoveNext
              ();)
     {
         ClassNode classRoot = ((ClassNode)classRootIter.Current);
         CollectClassSlots(classRoot.ClassMetadata());
         CollectClassStats(_stats, classRoot);
     }
     return(_stats);
 }
Example #3
0
 private bool IsBogusSlot(int address, int length)
 {
     return(address < 0 || (long)address + length > _db.FileLength());
 }