package bezeroa;
import java.util.Arrays;
import erabilgarriak.DownloadFile;
import erabilgarriak.DownloadFilePackage.PartHolder;
public class Jasotzailea extends Thread{
private DownloadFile df;
private Deskarga des;
private boolean hil = false;
public Jasotzailea(DownloadFile df, Deskarga des){
this.df = df;
this.des = des;
}
public void setSeeder(DownloadFile seeder){df = seeder;}
public void hil(){hil = true;}
public void run(){
int numPart=-1;
while(!hil){
if((numPart=des.getNextPart()) == -1)
break;
try{
System.out.println("Jasotzailea "+numPart+" partea hartzen");
PartHolder holder = new PartHolder(new byte[1]);
int bytes = df.getPart(numPart, holder);
if(bytes == 0)
throw new Exception();
System.out.println("partea jasota");
des.putPart(new Part(numPart, Arrays.copyOf(holder.value, bytes)));//Arrays.copy() ez da beharrezkoa, honek array-a
//irakurri dituen byte-n arabera mozten du, baina,
//arrayaren luzeera jada ondo egon beharko zan
}catch(Exception e){
des.error(numPart, df, this);
}
}
}
}