Esempio n. 1
0
        void Initialise(string savePath, string baseDirectory, IList <RawTrackerTier> announces)
        {
            _bitfield            = new BitField(HasMetadata ? _torrent.Pieces.Count : 1);
            this._savePath       = Path.Combine(savePath, baseDirectory);
            FinishedPieces       = new Queue <int>();
            _monitor             = new ConnectionMonitor();
            _inactivePeerManager = new InactivePeerManager(this);
            _peers          = new PeerManager();
            _pieceManager   = new PieceManager();
            _trackerManager = new TrackerManager(this, InfoHash, announces);

            Mode = new StoppedMode(this);
            CreateRateLimiters();

            PieceHashed += (o, e) => PieceManager.UnhashedPieces[e.PieceIndex] = false;

            if (HasMetadata)
            {
                foreach (var file in _torrent.Files)
                {
                    file.FullPath = Path.Combine(SavePath, file.Path);
                }
            }
        }