Exemplo n.º 1
0
 protected override void HandlePiece(PieceMessage piece, PeerState peer)
 {
 }
Exemplo n.º 2
0
 protected override void HandlePiece(PieceMessage piece, PeerState peer)
 {
     var blockInfo = new BlockInfo(piece.Index, piece.Offset, piece.Data.Length);
     //съобщаваме на BlockStrategistът, че сме получили блок, а той ни казва дали ни е нужен
     if(BlockStrategist.Received(blockInfo))
     {   //ако блока е нужен, записваме го
         WriteBlock(piece);
     }
     //понижаване на брояча за блоковете в изчакване
     peer.PendingBlocks--;
     //изпращане на нова заявка за блок към пиъра
     SendBlockRequests(peer);
 }
Exemplo n.º 3
0
 protected abstract void HandlePiece(PieceMessage piece, PeerState peer);
Exemplo n.º 4
0
 private void WriteBlock(PieceMessage piece)
 {
     try
     {
         var block = new Block(piece.Data, piece.Index, piece.Offset, piece.Data.Length);
         BlockManager.AddBlock(block, BlockWritten, block);
         Interlocked.Add(ref pendingWrites, piece.Data.Length);
     }
     catch(Exception e)
     {
         HandleException(e);
     }
 }