Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
        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();
        }