public StoppingMode(TorrentManager manager) : base(manager) { CanAcceptConnections = false; ClientEngine engine = manager.Engine; if (manager.Mode is HashingMode) { handle.AddHandle(((HashingMode)manager.Mode).hashingWaitHandle, "Hashing"); } if (manager.TrackerManager.CurrentTracker != null) { handle.AddHandle(manager.TrackerManager.Announce(TorrentEvent.Stopped), "Announcing"); } foreach (PeerId id in manager.Peers.ConnectedPeers) { if (id.Connection != null) { id.Connection.Dispose(); } } manager.Peers.ClearAll(); handle.AddHandle(engine.DiskManager.CloseFileStreams(manager), "DiskManager"); manager.Monitor.Reset(); manager.PieceManager.Reset(); engine.ConnectionManager.CancelPendingConnects(manager); engine.Stop(); }
public StoppingMode(TorrentManager manager) : base(manager) { CanAcceptConnections = false; ClientEngine engine = manager.Engine; if (manager.TrackerManager.CurrentTracker != null && manager.TrackerManager.CurrentTracker.Status == TrackerState.Ok) { announcingTasks.Add(manager.TrackerManager.Announce(TorrentEvent.Stopped)); } foreach (PeerId id in manager.Peers.ConnectedPeers) { if (id.Connection != null) { id.Connection.Dispose(); } } manager.Peers.ClearAll(); stopDiskManagerTask = engine.DiskManager.CloseFilesAsync(manager); manager.Monitor.Reset(); manager.PieceManager.Reset(); engine.ConnectionManager.CancelPendingConnects(manager); engine.Stop(); }
public StoppingMode(TorrentManager manager) : base(manager) { _shutdownTime = Stopwatch.StartNew(); CanAcceptConnections = false; ClientEngine engine = manager.Engine; if (manager.Mode is HashingMode) { handle.AddHandle(((HashingMode)manager.Mode).hashingWaitHandle, "Hashing"); } foreach (PeerId id in manager.Peers.ConnectedPeers) { if (id.Connection != null) { id.Connection.Dispose(); } } manager.Peers.ClearAll(); handle.AddHandle(engine.DiskManager.CloseFileStreams(manager), "DiskManager"); manager.Monitor.Reset(); manager.PieceManager.Reset(); engine.ConnectionManager.CancelPendingConnects(manager); engine.Stop(); }