Ejemplo n.º 1
0
 private void QueueRemoveFromIndex(ushort[] key)
 {
     if (QueueChanges)
     {
         PendingIndexChanges.Enqueue(new IndexOperation
         {
             Key = key,
             IndexOperationType = IndexOperationType.Remove
         });
     }
     else
     {
         SelectorXref.Remove(key);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Add an element to the index using a specified index key.
        /// </summary>
        ///
        /// <param name="key">
        /// The key
        /// </param>
        /// <param name="element">
        /// The element target
        /// </param>

        private void QueueAddToIndex(ushort[] key, IDomIndexedNode element)
        {
            if (QueueChanges)
            {
                PendingIndexChanges.Enqueue(new IndexOperation
                {
                    Key   = key,
                    Value = element.IndexReference,
                    IndexOperationType = IndexOperationType.Add
                });
            }
            else
            {
                SelectorXref.Add(key, element.IndexReference);
            }
        }
Ejemplo n.º 3
0
        private void ProcessQueue()
        {
            if (_PendingIndexChanges == null)
            {
                return;
            }

            while (PendingIndexChanges.Count > 0)
            {
                var item = PendingIndexChanges.Dequeue();

                switch (item.IndexOperationType)
                {
                case IndexOperationType.Add:
                    SelectorXref.Add(item.Key, item.Value);
                    break;

                case IndexOperationType.Remove:
                    SelectorXref.Remove(item.Key);
                    break;
                }
            }
        }