Ejemplo n.º 1
0
 protected TorrentMode(BlockManager manager, BlockStrategist strategist, TorrentData metadata, TransferMonitor monitor)
 {
     //инициализация на обект за следене на пренесените данни
     Monitor = monitor;
     //обект за управляване на записа на парчета върху файловата система
     BlockManager = manager;
     //обект за управление на заявките на парчета към пиърите
     BlockStrategist = strategist;
     //обект, съдържаш метаданните на торента
     Metadata = metadata;
     //съобщение за здрависване, което се използва от този TorrentMode
     DefaultHandshake = new HandshakeMessage(Global.Instance.PeerId, new byte[8], Metadata.InfoHash, "BitTorrent protocol");
     //конкурентен речник за съхранение на състоянието на активните пиъри
     Peers = new ConcurrentDictionary<string, PeerState>();
     //прикачане на събитието за изключения на BlockManager-а
     manager.RaisedException += (s, e) => HandleException(e.Value);
     //инициализация на теймера за изпращане на KeepAlive съобщения
     KeepAliveTimer = new Timer(SendKeepAlives);
 }
Ejemplo n.º 2
0
 public SeedMode(BlockManager manager, BlockStrategist strategist, TorrentData metadata, TransferMonitor monitor)
     : base(manager, strategist, metadata, monitor)
 {
 }
Ejemplo n.º 3
0
 public DownloadMode(BlockManager manager, BlockStrategist strategist, TorrentData metadata, TransferMonitor monitor)
     : base(manager, strategist, metadata, monitor)
 {
     strategist.HavePiece += (sender, args) => SendHaveMessages(args.Value);
 }