internal BTreeNode(IHierarchyObj owner) { m_tuples = new BTreeNodeTupleList(3); BTreeNodeTuple tuple = new BTreeNodeTuple(CreateBTreeNode(null, owner), -1); m_tuples.Add(tuple, null); }
internal void Add(BTreeNodeTuple tuple, ScalableList <BTreeNode> nodes) { if (m_list.Count == m_capacity) { throw new InvalidOperationException(); } m_list.Add(tuple); if (-1 != tuple.ChildIndex) { BTreeNode item; using (nodes.GetAndPin(tuple.ChildIndex, out item)) { item.IndexInParent = m_list.Count - 1; } } }
internal void Insert(int index, BTreeNodeTuple tuple, ScalableList <BTreeNode> nodes) { if (m_list.Count == m_capacity) { throw new InvalidOperationException(); } m_list.Insert(index, tuple); for (int i = index; i < m_list.Count; i++) { int childIndex = m_list[i].ChildIndex; if (childIndex != -1) { BTreeNode item; using (nodes.GetAndPin(childIndex, out item)) { item.IndexInParent = i; } } } }