Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
 public TElement TryGetElement(DateTime now)
 {
     if (object.ReferenceEquals(null, Leaf))
     {
         return(null);
     }
     if (Leaf.IsExpired(now))
     {
         Leaf = null;
         return(null);
     }
     return(Leaf.Element);
 }
Exemplo n.º 3
0
 public void Set(DnsDomain domain, IExpirableElement <TElement> element)
 {
     Data[domain] = element;
 }