internal void DeleteSnapshot(int ssid) { int index = ValidSSID.BinarySearch(ssid); Assert.IsTrue(index >= 0 && index < ValidSSID.Count); ValidSSID.RemoveAt(index); }
public void ReadEntity(IDictionary <string, EntityProperty> properties, OperationContext operationContext) { CurrentSSID = (int)properties[KeyCurrentSSID].Int32Value; ValidSSID.Clear(); string vsData = properties[KeyValidSSID].StringValue; Assert.IsTrue(vsData != null); if (!vsData.Equals("")) { string[] vs = vsData.Split(','); for (int i = 0; i < vs.Length; ++i) { ValidSSID.Add(int.Parse(vs[i])); } } SSIDHistory.Clear(); string shData = properties[KeySSIDHist].StringValue; Assert.IsTrue(shData != null && !shData.Equals("")); string[] sh = shData.Split(','); for (int i = 0; i < sh.Length; ++i) { SSIDHistory.Add(int.Parse(sh[i])); } Assert.IsTrue(SSIDHistory.Count == CurrentSSID + 1); }
internal void CreateSnapshot(int parentOfNewHead) { Assert.IsTrue(SSIDHistory.Count == CurrentSSID + 1); Assert.IsTrue(parentOfNewHead >= 0 && parentOfNewHead <= CurrentSSID); ValidSSID.Add(CurrentSSID); CurrentSSID++; SSIDHistory.Add(parentOfNewHead); }
// Get a valid snapshot id enumerator, the first call to prevSSID() returns ssid internal SSIDEnumerator GetSSIDEnumerator(int ssid) { int index = ValidSSID.BinarySearch(ssid); if (index < 0) { return(null); } return(new SSIDEnumerator(ValidSSID, index)); }
internal int?NextSnapshot(int ssid) { int index = ValidSSID.BinarySearch(ssid); if (index < 0) { index = ~index; } else { index += 1; } if (index >= ValidSSID.Count) { return(null); } else { return(ValidSSID[index]); } }
internal int?PrevSnapshot(int ssid) { int index = ValidSSID.BinarySearch(ssid); if (index < 0) { index = (~index) - 1; } else { index -= 1; } if (index < 0) { return(null); } else { return(ValidSSID[index]); } }
internal bool IsSnapshotValid(int ssid) { return(ValidSSID.BinarySearch(ssid) >= 0); }