package bezeroa; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import javax.swing.JLabel; import javax.swing.JProgressBar; import org.apache.commons.codec.digest.DigestUtils; import erabilgarriak.*; public class Bezero { public static ArrayList<FileData> files=new ArrayList<FileData>(); public static ArrayList<Deskarga> berrabiarazteko=new ArrayList<Deskarga>(); public static final String ONCOMING_PATH="ongoing";//Konpartitzeko fitxategiak egongo diren helbidea private static final String INCOMING_PATH = "incoming"; public static void fileDatakSortu(JProgressBar pb, JLabel label){ File fichero=new File(ONCOMING_PATH); if(!fichero.exists()) fichero.mkdir(); File [] lista; lista=fichero.listFiles(); if(lista == null) return; int pbBase = pb.getValue(); Double dPb = 60.0/lista.length; Double addPbBase = 0.0; for(int i=0;i<lista.length;i++){ if(lista[i].isFile()){ FileData fd = new FileData(); label.setText("Irakurtzen: "+lista[i].getName()+"..."); fd.name=lista[i].getName(); fd.size=lista[i].length(); try { System.out.println(lista[i].getAbsoluteFile()); fd.hash=DigestUtils.md5Hex(new FileInputStream(lista[i].getAbsoluteFile())); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } files.add(fd); addPbBase += dPb; pb.setValue((int)(pbBase+addPbBase)); } } } /*public static void main(String args[]) throws ServantNotActive, WrongPolicy{ Globalak.ORBGlobal.setArgs(args); fileDatakSortu(); FileData filedata=new FileData(); Globalak.ORBGlobal.getORBThread().start(); for (int i=0;files.size()>i;i++){ try{ filedata=files.get(i); Bidaltzailea bidal = new Bidaltzailea(filedata); Globalak.eMandoa.getServer().register(DownloadFileHelper.narrow(Globalak.ORBGlobal.getRootPOA().servant_to_reference(bidal))); }catch (Exception e){ e.printStackTrace(); } } Scanner scan = new Scanner(System.in); scan.nextLine(); FileData[] buff = new FileData[1]; buff[0] = new FileData(); FileDataArrayHolder holder = new FileDataArrayHolder(buff); Globalak.eMandoa.getServer().getLista(holder); for(FileData data : holder.value){ System.out.println(data.name); } scan.nextLine(); //Globalak.eMandoa.getServer().register(DownloadFileHelper.narrow(Globalak.ORBGlobal.getRootPOA().servant_to_reference(new Bidaltzailea(files.get(2))))); try { Deskarga d = new Deskarga(holder.value[0]); d.start(); System.out.println("Deskarga hasita"); d.join(); System.out.println("Deskarga bukatuta"); } catch (Exception e) { e.printStackTrace(); } //try { //datakIrakurri(); //} catch (Exception e1) { // TODO Auto-generated catch block //e1.printStackTrace(); //} Globalak.ORBGlobal.getORB().shutdown(true); try { Globalak.ORBGlobal.getORBThread().join(); } catch (InterruptedException e) { e.printStackTrace(); } }*/ //Deskarga berrabiarazi public static void datakIrakurri(JProgressBar pb, JLabel label) throws Exception{ File fichero=new File(INCOMING_PATH); if(!fichero.exists()) fichero.mkdir(); File [] lista; lista=fichero.listFiles(new Filter(".data")); if(lista == null) return; int pbBase = pb.getValue(); Double dPb = 25.0/lista.length; Double addPbBase = 0.0; for (int i=0;i<lista.length;i++){ int partKop; ArrayList <Integer> parteak=new ArrayList<Integer>(); ArrayList <Integer> faltan=new ArrayList<Integer>(); System.out.println("Fitxategia irakurtzen:"+lista[i]); BufferedReader br = new BufferedReader(new FileReader(lista[i])); String name=br.readLine(); label.setText("Berrabiarazten:"+name+"..."); Long size=Long.parseLong(br.readLine()); String hash=br.readLine(); FileData fd=new FileData(); fd.name=name; fd.size=size; fd.hash=hash; partKop=Integer.parseInt(br.readLine()); String numPart; while((numPart = br.readLine()) != null) parteak.add(Integer.parseInt(numPart)); for(int j=0;j<partKop;j++){ if(!parteak.contains(j)){ faltan.add(j); } } System.out.println("Deskarga berrabiarazten"); Deskarga berrabiarazi=new Deskarga(fd,faltan); berrabiarazteko.add(berrabiarazi); addPbBase += dPb; pb.setValue((int)(pbBase+addPbBase)); } } public static ArrayList<FileData> getFitxBerriak() { File fichero=new File(ONCOMING_PATH); ArrayList<FileData> fitx = new ArrayList<FileData>(); if(!fichero.exists()) fichero.mkdir(); File [] lista; lista=fichero.listFiles(); if(lista == null) return null; for(int i=0;i<lista.length;i++){ if(lista[i].isFile()){ boolean found = false; for(FileData fd : files){ if(fd.name.equals(lista[i].getName())){ found = true; break; } } if(!found){ FileData fd = new FileData(); fd.name=lista[i].getName(); fd.size=lista[i].length(); try { System.out.println(lista[i].getAbsoluteFile()); fd.hash=DigestUtils.md5Hex(new FileInputStream(lista[i].getAbsoluteFile())); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } fitx.add(fd); files.add(fd); } } } return fitx; } }