public XbelIdentifiedItemHashtable(XbelIdentifiedItemHashtable original) { innerHash = new Hashtable(original.innerHash); }
internal XbelIdentifiedItemHashtableEnumerator(XbelIdentifiedItemHashtable enumerable) { innerEnumerator = enumerable.InnerHash.GetEnumerator(); }
public XbelIdentifiedItemHashtable Clone() { XbelIdentifiedItemHashtable clone = new XbelIdentifiedItemHashtable(); clone.innerHash = (Hashtable) innerHash.Clone(); return clone; }
public static XbelIdentifiedItemHashtable Synchronized(XbelIdentifiedItemHashtable nonSync) { XbelIdentifiedItemHashtable sync = new XbelIdentifiedItemHashtable(); sync.innerHash = Hashtable.Synchronized(nonSync.innerHash); return sync; }
private void BuildIdTableForFolder(XbelFolder folder, XbelIdentifiedItemHashtable idTable) { foreach(XbelItem item in folder) { if (item is XbelIdentifiedItem) { XbelIdentifiedItem identItem = item as XbelIdentifiedItem; if (identItem.Id != "") { idTable.Add(identItem); } } if (item is XbelFolder) { BuildIdTableForFolder((item as XbelFolder), idTable); } } }
/// <summary> /// Tell the engine that the next call to IdTable should re-generate the table. /// </summary> /// <remarks> /// Called from <see cref="XbelFolder"/> Add, Insert, Remove, ... and other methods. /// </remarks> /// <returns> /// True if the cache was valid (and so this call was usefull), false otherwise. /// </returns> public bool InvalidateIdTableCache() { bool oldValue = idTableCacheIsValid; if (idTableCacheIsValid) { idTableCacheIsValid = false; idTableCache = null; } return oldValue; }