OctoTorrent.Client.ClientEngine.Register C# (CSharp) Метод

Register() публичный Метод

public Register ( TorrentManager manager ) : void
manager TorrentManager
Результат void
        public void Register(TorrentManager manager)
        {
            CheckDisposed();
            Check.Manager(manager);

            MainLoop.QueueWait(() =>
                                   {
                                       if (manager.Engine != null)
                                           throw new TorrentException("This manager has already been registered");

                                       if (Contains(manager.Torrent))
                                           throw new TorrentException(
                                               "A manager for this torrent has already been registered");
                                       torrents.Add(manager);

                                       manager.PieceHashed += PieceHashed;
                                       manager.Engine = this;
                                       manager.DownloadLimiter.Add(downloadLimiter);
                                       manager.UploadLimiter.Add(uploadLimiter);

                                       if (_fastResume != null)
                                       {
                                           var fastResume = _fastResume
                                               .SingleOrDefault(fr => manager.InfoHash == fr.Infohash);
                                           if (fastResume != null)
                                               manager.LoadFastResume(fastResume);
                                       }

                                       if (dhtEngine != null && manager.Torrent != null && manager.Torrent.Nodes != null &&
                                           dhtEngine.State != DhtState.Ready)
                                       {
                                           try
                                           {
                                               dhtEngine.Add(manager.Torrent.Nodes);
                                           }
                                           catch
                                           {
                                               // FIXME: Should log this somewhere, though it's not critical
                                           }
                                       }
                                   });

            if (TorrentRegistered != null)
                TorrentRegistered(this, new TorrentEventArgs(manager));
        }

Usage Example

Пример #1
0
 public EngineTestRig(string savePath, int piecelength, PieceWriter writer)
 {
     if(writer == null)
         writer = new MemoryWriter(new NullWriter());
     listener = new CustomListener();
     engine = new ClientEngine(new EngineSettings(), listener, writer);
     torrentDict = CreateTorrent(piecelength);
     torrent = Torrent.Load(torrentDict);
     manager = new TorrentManager(torrent, savePath, new TorrentSettings());
     engine.Register(manager);
     //manager.Start();
 }
All Usage Examples Of OctoTorrent.Client.ClientEngine::Register