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]); }
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]); }
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"); }
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; } } }