public BitTorrentApplicationProtocol(
     ILogger <BitTorrentApplicationProtocol> logger,
     PeerId localPeerId,
     Metainfo metainfo,
     IApplicationProtocolPeerInitiator peerInitiator,
     IEnumerable <IModule> modules,
     IPieceDataHandler dataHandler)
 {
     _logger                     = logger;
     _localPeerId                = localPeerId;
     _peerInitiator              = peerInitiator;
     _modules                    = modules.ToList().AsReadOnly();
     DataHandler                 = dataHandler;
     dataHandler.PieceCompleted += PieceCompleted;
     dataHandler.PieceCorrupted += PieceCorrupted;
     Metainfo                    = metainfo;
     _blockRequests              = new BlockRequestManager();
 }
Exemple #2
0
 public BitTorrentApplicationProtocol(
     PeerId localPeerId,
     Metainfo metainfo,
     IApplicationProtocolPeerInitiator <PeerConnection, TConnectionContext, PeerConnectionArgs> peerInitiator,
     Func <IPeerMessageHandler, IPeerMessageHandler> messageHandlerFactory,
     IModuleManager modules,
     IPieceDataHandler dataHandler)
 {
     this.localPeerId           = localPeerId;
     this.peerInitiator         = peerInitiator;
     this.messageHandlerFactory = messageHandlerFactory;
     this.modules = modules;
     DataHandler  = dataHandler;
     dataHandler.PieceCompleted += PieceCompleted;
     dataHandler.PieceCorrupted += PieceCorrupted;
     Metainfo      = metainfo;
     blockRequests = new BlockRequestManager();
 }
Exemple #3
0
 public static IEnumerable <Piece> IncompletePieces(this IPieceDataHandler pieceDataHandler)
 {
     return(pieceDataHandler.Metainfo.Pieces.Except(pieceDataHandler.CompletedPieces));
 }