internal static Tree RemoveGreaterOrEqual(Db4objects.Db4o.Internal.Freespace.FreeSlotNode a_in, TreeIntObject a_finder) { if (a_in == null) { return(null); } int cmp = a_in._key - a_finder._key; if (cmp == 0) { a_finder._object = a_in; // the highest node in the hierarchy !!! return(a_in.Remove()); } if (cmp > 0) { a_in._preceding = RemoveGreaterOrEqual((Db4objects.Db4o.Internal.Freespace.FreeSlotNode )((Tree)a_in._preceding), a_finder); if (a_finder._object != null) { a_in._size--; return(a_in); } a_finder._object = a_in; return(a_in.Remove()); } a_in._subsequent = RemoveGreaterOrEqual((Db4objects.Db4o.Internal.Freespace.FreeSlotNode )((Tree)a_in._subsequent), a_finder); if (a_finder._object != null) { a_in._size--; } return(a_in); }
private SlotDetail ByAddress(int address) { TreeIntObject tree = (TreeIntObject)TreeIntObject.Find(_slots, new TreeIntObject( address, null)); return(tree == null ? null : (SlotDetail)tree._object); }
internal static Tree RemoveGreaterOrEqual(FreeSlotNode a_in, TreeIntObject a_finder) { if (a_in == null) { return null; } var cmp = a_in._key - a_finder._key; if (cmp == 0) { a_finder._object = a_in; // the highest node in the hierarchy !!! return a_in.Remove(); } if (cmp > 0) { a_in._preceding = RemoveGreaterOrEqual((FreeSlotNode ) a_in._preceding, a_finder); if (a_finder._object != null) { a_in._size--; return a_in; } a_finder._object = a_in; return a_in.Remove(); } a_in._subsequent = RemoveGreaterOrEqual((FreeSlotNode ) a_in._subsequent, a_finder); if (a_finder._object != null) { a_in._size--; } return a_in; }
public virtual Sharpen.Util.ISet Overlaps() { Sharpen.Util.ISet overlaps = new HashSet(); ByRef prevSlot = ByRef.NewInstance(); TreeIntObject.Traverse(_slots, new _IVisitor4_29(this, prevSlot, overlaps)); return(overlaps); }
public virtual void Add(SlotDetail slot) { if (Tree.Find(_slots, new TreeIntObject(slot._slot.Address())) != null) { _dupes.Add(new Pair(ByAddress(slot._slot.Address()), slot)); } _slots = (TreeIntObject)Tree.Add(_slots, new TreeIntObject (slot._slot.Address(), slot)); }
public virtual void ConvertCacheEvictedNodesToReadMode() { if (_evictedFromCache == null) { return; } Tree.Traverse(_evictedFromCache, new _IVisitor4_628()); _evictedFromCache = null; }
public override int MappedId(int oldID) { int classID = MappedClassID(oldID); if (classID != 0) { return(classID); } TreeIntObject res = (TreeIntObject)TreeInt.Find(_tree, oldID); if (res != null) { return((int)res._object); } return(0); }
private void Purge() { if (_nodes == null) { return; } Tree temp = _nodes; _nodes = null; _root.HoldChildrenAsIDs(); AddNode(_root); temp.Traverse(new _IVisitor4_294()); for (IEnumerator entryIter = _nodeCache.GetEnumerator(); entryIter.MoveNext();) { BTreeNodeCacheEntry entry = ((BTreeNodeCacheEntry)entryIter.Current); entry._node.HoldChildrenAsIDs(); } }
public virtual BTreeNode ProduceNode(int id) { if (DTrace.enabled) { DTrace.BtreeProduceNode.Log(id); } TreeIntObject addtio = new TreeIntObject(id); _nodes = (TreeIntObject)((TreeIntObject)Tree.Add(_nodes, addtio)); TreeIntObject tio = (TreeIntObject)addtio.AddedOrExisting(); BTreeNode node = (BTreeNode)tio.GetObject(); if (node == null) { node = CacheEntry(new BTreeNode(id, this))._node; tio.SetObject(node); AddToProcessing(node); } return(node); }
internal virtual void AddNode(BTreeNode node) { _nodes = (TreeIntObject) Tree.Add(_nodes, new TreeIntObject(node.GetID (), node)); AddToProcessing(node); }
public virtual void Add(Slot slot) { _slots = ((TreeIntObject)Tree.Add(_slots, new TreeIntObject(slot.Address(), slot) )); }
private void AddMapping(Slot slot, ConsistencyChecker.SlotSource source) { mappings = ((TreeIntObject)Tree.Add(mappings, new ConsistencyChecker.MappingTree( slot, source))); }
internal virtual void AddNode(BTreeNode node) { _nodes = (TreeIntObject)((TreeIntObject)Tree.Add(_nodes, new TreeIntObject(node.GetID (), node))); AddToProcessing(node); }
public virtual void EvictedFromCache(BTreeNode node) { _evictedFromCache = ((TreeIntObject) Tree.Add(_evictedFromCache, new TreeIntObject (node.GetID(), node))); }
internal virtual void RemoveNode(BTreeNode node) { _nodes = (TreeIntObject) ((TreeInt) _nodes.RemoveLike(new TreeInt(node.GetID()))); }
internal virtual void RemoveNode(BTreeNode node) { _nodes = (TreeIntObject)((TreeInt)_nodes.RemoveLike(new TreeInt(node.GetID()))); }
public virtual BTreeNode ProduceNode(int id) { if (DTrace.enabled) { DTrace.BtreeProduceNode.Log(id); } var addtio = new TreeIntObject(id); _nodes = (TreeIntObject) Tree.Add(_nodes, addtio); var tio = (TreeIntObject) addtio.AddedOrExisting(); var node = (BTreeNode) tio.GetObject(); if (node == null) { node = CacheEntry(new BTreeNode(id, this))._node; tio.SetObject(node); AddToProcessing(node); } return node; }
private void Purge() { if (_nodes == null) { return; } Tree temp = _nodes; _nodes = null; _root.HoldChildrenAsIDs(); AddNode(_root); temp.Traverse(new _IVisitor4_294()); for (var entryIter = _nodeCache.GetEnumerator(); entryIter.MoveNext();) { var entry = ((BTreeNodeCacheEntry) entryIter.Current); entry._node.HoldChildrenAsIDs(); } }
public virtual void EvictedFromCache(BTreeNode node) { _evictedFromCache = ((TreeIntObject)Tree.Add(_evictedFromCache, new TreeIntObject (node.GetID(), node))); }