protected override void MapNonClassIDs(int origID, int mappedID) { _cache = new MappedIDPair(origID, mappedID); _idTree.Add(Trans(), _cache); if (_commitFrequency > 0) { _idInsertCount++; if (_commitFrequency == _idInsertCount) { _idTree.Commit(Trans()); _idInsertCount = 0; } } }
public override int MappedId(int oldID) { if (_cache.Orig() == oldID) { return(_cache.Mapped()); } int classID = MappedClassID(oldID); if (classID != 0) { return(classID); } IBTreeRange range = _idTree.SearchRange(Trans(), new MappedIDPair(oldID, 0)); IEnumerator pointers = range.Pointers(); if (pointers.MoveNext()) { BTreePointer pointer = (BTreePointer)pointers.Current; _cache = (MappedIDPair)pointer.Key(); return(_cache.Mapped()); } return(0); }