コード例 #1
0
        public ODBIterator(IObjectDBTransaction tr, IODBFastVisitor visitor)
        {
            _tr                = (IInternalObjectDBTransaction)tr;
            _trkv              = _tr.KeyValueDBTransaction;
            _fastVisitor       = visitor;
            _visitor           = visitor as IODBVisitor;
            _usedTableIds      = new HashSet <uint>();
            _visitedOids       = new HashSet <ulong>();
            _usedTableVersions = new HashSet <TableIdVersion>();
            _tableVersionInfos = new Dictionary <TableIdVersion, TableVersionInfo>();

            _skippers = new Dictionary <IFieldHandler, Action <AbstractBufferedReader> >(ReferenceEqualityComparer <IFieldHandler> .Instance);
            _loaders  = new Dictionary <IFieldHandler, Func <AbstractBufferedReader, object> >(ReferenceEqualityComparer <IFieldHandler> .Instance);
        }
コード例 #2
0
        public void IterateUnseenOid(ulong oid, IODBFastVisitor visitor)
        {
            var visitorBackup     = _visitor;
            var fastVisitorBackup = _fastVisitor;

            try
            {
                _visitor     = visitor as IODBVisitor;
                _fastVisitor = visitor;
                IterateOid(oid);
            }
            finally
            {
                _visitor     = visitorBackup;
                _fastVisitor = fastVisitorBackup;
            }
        }