Exemplo n.º 1
0
        public override void Execute()
        {
            if (bucket.Nodes.Count == 0)
            {
                RaiseComplete(new TaskCompleteEventArgs(this));
                return;
            }

            //Console.WriteLine("Choosing first from: {0}", bucket.Nodes.Count);
            bucket.SortBySeen();
            QueryNode(bucket.Nodes[0]);
        }
Exemplo n.º 2
0
        public override void Execute()
        {
            if (bucket.Nodes.Count == 0)
            {
                RaiseComplete(new TaskCompleteEventArgs(this));
                return;
            }

            System.Diagnostics.Trace.WriteLine("Choosing first from: " + bucket.Nodes.Count);
            bucket.SortBySeen();
            QueryNode(bucket.Nodes[0]);
        }
Exemplo n.º 3
0
        public void SortBySeen()
        {
            var oldNode = new Node(NodeId.Create(), new IPEndPoint(IPAddress.Any, 0));
            var newNode = new Node(NodeId.Create(), new IPEndPoint(IPAddress.Any, 1));

            var bucket = new Bucket {
                oldNode,
                newNode
            };

            oldNode.Seen(TimeSpan.FromDays(1));
            bucket.SortBySeen();
            Assert.AreEqual(oldNode, bucket.Nodes[0], "#1");

            newNode.Seen(TimeSpan.FromDays(2));
            bucket.SortBySeen();
            Assert.AreEqual(newNode, bucket.Nodes[0], "#2");
        }
Exemplo n.º 4
0
        public async void Execute()
        {
            if (bucket.Nodes.Count == 0)
            {
                return;
            }

            bucket.SortBySeen();

            foreach (var node in bucket.Nodes.ToArray())
            {
                var message = new FindNode(engine.LocalId, node.Id);

                var args = await engine.SendQueryAsync(message, node);

                if (!args.TimedOut)
                {
                    return;
                }
            }
        }