public void Set(DnsDomain name, IExpirableElement <TElement> element) { if (object.ReferenceEquals(null, name)) { throw new ArgumentNullException("name"); } if (object.ReferenceEquals(null, element)) { throw new ArgumentNullException("element"); } // iterate through domain labels starting from top level using (IEnumerator <DnsLabel> en = name.GetEnumerator()) { TreeNode nodes = _Nodes; while (en.MoveNext()) { TreeNode subNodes; if (!nodes.TryGetValue(en.Current, out subNodes)) { //subNodes = new TreeNode(); nodes.Add(en.Current, (subNodes = new TreeNode())); nodes = subNodes; } } // now here goes the leaf nodes.Leaf = element; } }
public TElement TryGetElement(DateTime now) { if (object.ReferenceEquals(null, Leaf)) { return(null); } if (Leaf.IsExpired(now)) { Leaf = null; return(null); } return(Leaf.Element); }
public void Set(DnsDomain domain, IExpirableElement <TElement> element) { Data[domain] = element; }