public void AddFailedPeer(Peer p) { var id = new TrackerConnectionID(this, true, TorrentEvent.None, new ManualResetEvent(false)); var e = new AnnounceResponseEventArgs(this, id, false); e.Peers.Add(p); RaiseAnnounceComplete(e); Assert.True(id.WaitHandle.WaitOne(1000, true), "#2 Tracker never raised the AnnounceComplete event"); }
public void AddFailedPeer(Peer p) { var id = new TrackerConnectionID(this, true, TorrentEvent.None, null); var e = new AnnounceResponseEventArgs(this, null, true); e.Peers.Add(p); e.Successful = false; RaiseAnnounceComplete(e); }
protected virtual void RaiseAnnounceComplete(AnnounceResponseEventArgs e) { EventHandler <AnnounceResponseEventArgs> h = AnnounceComplete; if (h != null) { h(this, e); } }
void TrackerAnnounceComplete(object sender, AnnounceResponseEventArgs e) { if(e.Peers.Count > 0) { Log("Announce Success: {0}", e.Tracker.Uri); InvokePeersFound(this,new PeersFoundEventArgs(Hash,e.Peers)); return; } if(e.Successful ==false) { Log("Announce Failed: {0}" , e.Tracker.Uri); } }
public static void HandleAnnounceComplete(object sender, AnnounceResponseEventArgs e) { logger.DebugFormat("AnnounceComplete. Tracker={0}, Successful={1}", e.Tracker.Uri, e.Successful); if (e.Successful) { logger.DebugFormat("Tracker: Peers={2}, Complete={0}, Incomplete={1}", e.Tracker.Complete, e.Tracker.Incomplete, e.Peers.Count); e.Peers.ForEach(x => logger.DebugFormat("Peer: {0}", x.ToString())); } else { logger.DebugFormat("Announce failed: {0}", e.Tracker.FailureMessage); } }
private void OnAnnounceComplete(object sender, AnnounceResponseEventArgs e) { try { this.updateSucceeded = e.Successful; if (manager.Engine == null) { e.Id.WaitHandle.Set(); return; } if (e.Successful) { manager.Peers.BusyPeers.Clear(); int count = manager.AddPeersCore(e.Peers); manager.RaisePeersFound(new TrackerPeersAdded(manager, count, e.Peers.Count, e.Tracker)); TrackerTier tier = trackerTiers.Find(delegate(TrackerTier t) { return(t.Trackers.Contains(e.Tracker)); }); if (tier != null) { Toolbox.Switch <Tracker>(tier.Trackers, 0, tier.IndexOf(e.Tracker)); Toolbox.Switch <TrackerTier>(trackerTiers, 0, trackerTiers.IndexOf(tier)); } e.Id.WaitHandle.Set(); } else { TrackerTier tier; Tracker tracker; if (!e.Id.TrySubsequent || !GetNextTracker(e.Tracker, out tier, out tracker)) { e.Id.WaitHandle.Set(); } else { Announce(tracker, e.Id.TorrentEvent, true, e.Id.WaitHandle); } } } catch (ObjectDisposedException) { } }
protected virtual void RaiseAnnounceComplete(AnnounceResponseEventArgs e) { EventHandler<AnnounceResponseEventArgs> h = AnnounceComplete; if (h != null) h(this, e); }
protected virtual void RaiseAnnounceComplete(AnnounceResponseEventArgs e) { AnnounceComplete?.Invoke(this, e); }
public override void Announce(AnnounceParameters parameters, object state) { AnnounceResponseEventArgs e = new AnnounceResponseEventArgs(this, state, true); RaiseAnnounceComplete(e); }
void RaiseAnnounceComplete(object sender, AnnounceResponseEventArgs args) => AnnounceComplete?.InvokeAsync(this, args);