Пример #1
0
 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;
         }
     }
 }
Пример #2
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);
        }