protected virtual void RaiseAnnounceComplete(AnnounceResponseEventArgs e) { EventHandler <AnnounceResponseEventArgs> h = AnnounceComplete; if (h != null) { h(this, e); } }
private void OnAnnounceComplete(object sender, AnnounceResponseEventArgs e) { 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); } } }