Example #1
0
        internal void DeleteSnapshot(int ssid)
        {
            int index = ValidSSID.BinarySearch(ssid);

            Assert.IsTrue(index >= 0 && index < ValidSSID.Count);
            ValidSSID.RemoveAt(index);
        }
Example #2
0
        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);
        }
Example #3
0
        internal void CreateSnapshot(int parentOfNewHead)
        {
            Assert.IsTrue(SSIDHistory.Count == CurrentSSID + 1);
            Assert.IsTrue(parentOfNewHead >= 0 && parentOfNewHead <= CurrentSSID);

            ValidSSID.Add(CurrentSSID);
            CurrentSSID++;

            SSIDHistory.Add(parentOfNewHead);
        }
Example #4
0
        // 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));
        }
Example #5
0
        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]);
            }
        }
Example #6
0
        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]);
            }
        }
Example #7
0
 internal bool IsSnapshotValid(int ssid)
 {
     return(ValidSSID.BinarySearch(ssid) >= 0);
 }