bool IReplaceCallback <T> .ShouldReplace(Tangle <T> tangle, ref BTreeValue btreeValue, ushort keyType, ref T newValue) { T oldValue; tangle.ReadData(ref btreeValue, keyType, out oldValue); if (Callback != null) { newValue = Callback(oldValue); return(true); } else { return(DecisionCallback(ref oldValue, ref newValue)); } }
bool IReplaceCallback <T> .ShouldReplace(Tangle <T> tangle, ref BTreeValue btreeValue, ushort keyType, ref T newValue) { return(ShouldReplace); }
private unsafe void ReadData(ref BTreeValue entry, ushort keyType, out T value) { fixed(BTreeValue *pEntry = &entry) BTree.ReadData(pEntry, keyType, Deserializer, out value); }