public virtual object Search(Transaction trans, object key) { BTreePointer bTreePointer = SearchPointer(trans, key); if (bTreePointer != null) { return(bTreePointer.Key()); } return(null); }
public int CompareTo(Db4objects.Db4o.Internal.Btree.BTreePointer y) { if (null == y) { throw new ArgumentNullException(); } if (Btree() != y.Btree()) { throw new ArgumentException(); } return(Btree().CompareKeys(_transaction.Context(), Key(), y.Key())); }
private void AssertReadModePointerIteration(int[] expectedKeys, BTreePointer pointer ) { object[] expected = IntArrays4.ToObjectArray(expectedKeys); for (int i = 0; i < expected.Length; i++) { Assert.IsNotNull(pointer, "Expected '" + expected[i] + "'"); Assert.AreNotSame(_btree.Root(), pointer.Node()); AssertInReadModeOrCached(pointer.Node()); Assert.AreEqual(expected[i], pointer.Key()); AssertInReadModeOrCached(pointer.Node()); pointer = pointer.Next(); } }
public virtual object Remove(Transaction trans, object key) { BTreePointer bTreePointer = SearchPointer(trans, key); if (bTreePointer == null) { return(null); } object result = bTreePointer.Key(); Enlist(trans); IPreparedComparison preparedComparison = KeyHandler().PrepareComparison(trans.Context (), key); BTreeNode node = bTreePointer.Node(); node.Remove(trans, preparedComparison, key, bTreePointer.Index()); ConvertCacheEvictedNodesToReadMode(); return(result); }
public virtual BTreePointer SearchPointer(Transaction trans, object key) { EnsureActive(trans); KeyCantBeNull(key); IPreparedComparison preparedComparison = KeyHandler().PrepareComparison(trans.Context (), key); BTreeNodeSearchResult start = SearchLeaf(trans, preparedComparison, SearchTarget. Lowest); BTreePointer bTreePointer = start.FirstValidPointer(); if (bTreePointer == null) { ConvertCacheEvictedNodesToReadMode(); return(null); } object found = bTreePointer.Key(); ConvertCacheEvictedNodesToReadMode(); if (preparedComparison.CompareTo(found) == 0) { return(bTreePointer); } return(null); }
protected virtual void AssertPointerKey(int key, BTreePointer pointer) { Assert.AreEqual(key, pointer.Key()); }
public int CompareTo(BTreePointer y) { if (null == y) { throw new ArgumentNullException(); } if (Btree() != y.Btree()) { throw new ArgumentException(); } return Btree().CompareKeys(_transaction.Context(), Key(), y.Key()); }