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); }
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; } }