/// <summary> /// Remove an element from the index using its key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to remove. /// </param> public void RemoveFromIndex(ushort[] key, IDomIndexedNode element) { IndexValue existing; if (Index.TryGetValue(key, out existing)) { existing.Set.Remove(element.IndexReference); existing.IsSorted = false; } }
/// <summary> /// Add an element to the index using the default keys for this element. /// </summary> /// /// <param name="element"> /// The element to add /// </param> public void AddToIndex(IDomIndexedNode element) { if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } }
public void AddToIndex(IDomIndexedNode element) { foreach (string key in element.IndexKeys()) { AddToIndex(key, element); } if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } }
/// <summary> /// Adds an element to the index for the specified key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(ushort[] key, IDomIndexedNode element) { IndexValue existing; if (!Index.TryGetValue(key, out existing)) { existing.Initialize(); existing.Set.Add(element.IndexReference); Index.Add(key, existing); } else { existing.Set.Add(element.IndexReference); existing.IsSorted = false; } }
/// <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); } }
/// <summary> /// Add an element to the index using the default keys for this element. /// </summary> /// /// <param name="element"> /// The element to add /// </param> public void AddToIndex(IDomIndexedNode element) { if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } foreach (var key in element.IndexKeys()) { AddToIndex(key, element); } }
public void RemoveFromIndex(IDomIndexedNode element) { if (element.HasChildren) { foreach (IDomElement child in ((IDomContainer)element).ChildElements) { if (child.IsIndexed) { RemoveFromIndex(child); } } } foreach (string key in element.IndexKeys()) { RemoveFromIndex(key); } }
/// <summary> /// Add an element to the index using the default keys for this element. /// </summary> /// /// <param name="element"> /// The element to add /// </param> public void AddToIndex(IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; QueueAddToIndex(RangePath(path), element); foreach (ushort[] key in element.IndexKeys()) { QueueAddToIndex(RangePath(key, path), element); } if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } }
/// <summary> /// Remove an element from the index. /// </summary> /// /// <param name="element"> /// The element to remove /// </param> public void RemoveFromIndex(IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; QueueRemoveFromIndex(RangePath(null, path)); if (element.HasChildren) { foreach (IDomElement child in ((IDomContainer)element).ChildElements) { if (child.IsIndexed) { RemoveFromIndex(child); } } } foreach (ushort[] key in element.IndexKeys()) { QueueRemoveFromIndex(RangePath(key, path)); } }
/// <summary> /// Remove an element from the index. /// </summary> /// /// <param name="element"> /// The element to remove /// </param> public void RemoveFromIndex(IDomIndexedNode element) { return; }
/// <summary> /// Remove an element from the index using its key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to remove. /// </param> public void RemoveFromIndex(ushort[] key, IDomIndexedNode element) { return; }
/// <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); //} }
/// <summary> /// Remove an element from the index using its key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to remove; this is ignored fort IDomIndexRange because it is identified by the key. /// </param> public void RemoveFromIndex(ushort[] key, IDomIndexedNode element) { QueueRemoveFromIndex(RangePath(key, element)); }
/// <summary> /// Remove an element from the index using its key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to remove; this is ignored fort IDomIndexRange because it is identified by the key. /// </param> public void RemoveFromIndex(ushort[] key, IDomIndexedNode element) { QueueRemoveFromIndex(RangePath(key,element)); }
public void AddToIndex(string key, IDomIndexedNode element) { SelectorXref.Add(key, element.IndexReference); }
/// <summary> /// Adds an element to the index for the specified key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(ushort[] key, IDomIndexedNode element) { return; }
/// <summary> /// Adds an element to the index for the specified key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(ushort[] key, IDomIndexedNode element) { // Index.Add(key,element.IndexKeysRanged()); }
/// <summary> /// Add an element to the index using the default keys for this element. /// </summary> /// /// <param name="element"> /// The element to add /// </param> public void AddToIndex(IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; QueueAddToIndex(RangePath(path), element); foreach (ushort[] key in element.IndexKeys()) { QueueAddToIndex(RangePath(key,path), element); } if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } }
/// <summary> /// Adds an element to the index for the specified key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(ushort[] key, IDomIndexedNode element) { QueueAddToIndex(RangePath(key, element),element); }
/// <summary> /// Remove an element from the index. /// </summary> /// /// <param name="element"> /// The element to remove /// </param> public void RemoveFromIndex(IDomIndexedNode element) { if (element.HasChildren) { foreach (IDomElement child in ((IDomContainer)element).ChildElements) { if (child.IsIndexed) { RemoveFromIndex(child); } } } foreach (ushort[] key in element.IndexKeys()) { RemoveFromIndex(key, element); } }
/// <summary> /// Remove an element from the index. /// </summary> /// /// <param name="element"> /// The element to remove /// </param> public void RemoveFromIndex(IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; QueueRemoveFromIndex(RangePath(null, path)); if (element.HasChildren) { foreach (IDomElement child in ((IDomContainer)element).ChildElements) { if (child.IsIndexed) { RemoveFromIndex(child); } } } foreach (ushort[] key in element.IndexKeys()) { QueueRemoveFromIndex(RangePath(key,path)); } }
/// <summary> /// Adds an element to the index. /// </summary> /// /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(IDomIndexedNode element) { return; }
/// <summary> /// Convert a key/path combination to a path suitable for view selection. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> /// /// <returns> /// A key. /// </returns> private ushort[] RangePath(ushort[] key, IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; return RangePath(key, path); }
/// <summary> /// Add an element to the index using the default keys for this element. /// </summary> /// /// <param name="element"> /// The element to add /// </param> public void AddToIndex(IDomIndexedNode element) { foreach (ushort[] key in element.IndexKeysRanged()) { QueueAddToIndex(key, element); } if (element.HasChildren) { foreach (DomElement child in ((IDomContainer)element).ChildElements) { AddToIndex(child); } } }
/// <summary> /// Adds an element to the index for the specified key. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> public void AddToIndex(ushort[] key, IDomIndexedNode element) { QueueAddToIndex(RangePath(key, element), element); }
/// <summary> /// Convert a key/path combination to a path suitable for view selection. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> /// /// <returns> /// A key. /// </returns> private ushort[] RangePath(ushort[] key, IDomIndexedNode element) { ushort[] path = element.IndexReference.NodePath; return(RangePath(key, path)); }
/// <summary> /// Convert a key/path combination to a path suitable for view selection. /// </summary> /// /// <param name="key"> /// The key to remove. /// </param> /// <param name="element"> /// The element to add. /// </param> /// /// <returns> /// A key. /// </returns> private ulong[] RangePath(ulong[] key, IDomIndexedNode element) { var path = element.IndexReference.NodePath; return(RangePath(key, path)); }