def readPiece(pieceIndex)
      length = BlockSize
      length = @lastPieceLength if pieceIndex == @numPieces - 1
      id = @pieceManager.readBlock pieceIndex, 0, length
      #result = manager.nextResult
      @pieceManagerRequests[id] = PieceManagerRequestMetadata.new(:read, pieceIndex)
      id
    end
def readPiece(pieceIndex)
      length = BlockSize
      length = @lastPieceLength if pieceIndex == @numPieces - 1
      id = @pieceManager.readBlock pieceIndex, 0, length
      #result = manager.nextResult
      @pieceManagerRequests[id] = PieceManagerRequestMetadata.new(:read, pieceIndex)
      id
    end
Read a piece from disk. This method is asynchronous; it returns a handle that can be later
 used to retreive the result.