private void CollectClassSlots(ClassMetadata clazz)
        {
            if (!clazz.HasClassIndex())
            {
                return;
            }
            BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)clazz.Index();

            index.TraverseIds(_db.SystemTransaction(), new _IVisitor4_184(this));
        }
        private FileUsageStatsCollector.InstanceUsage ClassSlotUsage(ClassMetadata clazz)
        {
            if (!clazz.HasClassIndex())
            {
                return(new FileUsageStatsCollector.InstanceUsage(0, 0, 0));
            }
            IMiscCollector          miscCollector = ((IMiscCollector)MiscCollectors[clazz.GetName()]);
            LongByRef               slotUsage     = new LongByRef();
            LongByRef               miscUsage     = new LongByRef();
            IntByRef                numInstances  = new IntByRef();
            BTreeClassIndexStrategy index         = (BTreeClassIndexStrategy)clazz.Index();

            index.TraverseIds(_db.SystemTransaction(), new _IVisitor4_167(this, numInstances,
                                                                          slotUsage, miscCollector, miscUsage));
            return(new FileUsageStatsCollector.InstanceUsage(slotUsage.value, miscUsage.value
                                                             , numInstances.value));
        }
Beispiel #3
0
        private IList CheckClassIndices()
        {
            IList     invalidIds = new ArrayList();
            IIdSystem idSystem   = _db.IdSystem();

            if (!(idSystem is BTreeIdSystem))
            {
                return(invalidIds);
            }
            ClassMetadataIterator clazzIter = _db.ClassCollection().Iterator();

            while (clazzIter.MoveNext())
            {
                ClassMetadata clazz = clazzIter.CurrentClass();
                if (!clazz.HasClassIndex())
                {
                    continue;
                }
                BTreeClassIndexStrategy index = (BTreeClassIndexStrategy)clazz.Index();
                index.TraverseIds(_db.SystemTransaction(), new _IVisitor4_64(this, invalidIds, clazz
                                                                             ));
            }
            return(invalidIds);
        }