package br.edu.ifba.inf008.mediaCenter.session;
import br.edu.ifba.inf008.mediaCenter.model.MediaCenter;
import br.edu.ifba.inf008.mediaCenter.model.ServidorBasico;
import br.edu.ifba.inf008.mediaCenter.model.ServidorReplicado;

public class App{
    
    public void run(){
        MediaCenter media = new MediaCenter();
        
        ServidorReplicado s1 = new ServidorReplicado("anubis");
        ServidorReplicado s11 = new ServidorReplicado("thot");        
        
        s11.addServidor(new ServidorBasico("osiris", 512, 0.25, 0.25));
        s11.addServidor(new ServidorBasico("isis", 256, 0.1, 0.1));        
        
        s1.addServidor(s11);
        s1.addServidor(new ServidorBasico("bast", 512, 0.05, 0.05));
        
        media.addServidor(new ServidorBasico("horus", 1024, 0.5, 0.8));
        media.addServidor(new ServidorBasico("ra", 1024, 0.4, 1.0));        
        media.addServidor(s1);        
        
        
        Arquivo a1 = new Arquivo("S1");
        
        a1.addFragmento(new Fragmento("S1.1", 100));
        a1.addFragmento(new Fragmento("S1.2", 100));
        a1.addFragmento(new Fragmento("S1.3", 900));        
        
        System.out.println(media);
        
        System.out.println("Tempo de armazenamento de " + a1 + ": " + media.getTempoArmazenamento(a1) + "\n");
        
        System.out.println(media);        
        
        System.out.println("Tempo de Recuperacao de " + a1 + ": " + media.getTempoLeitura("S1") + "\n");        
        
        Arquivo a2 = new Arquivo("S2");
        a2.addFragmento(new Fragmento("S2.1", 200));
        a2.addFragmento(new Fragmento("S2.2", 200));
        a2.addFragmento(new Fragmento("S2.3", 100));          
        a2.addFragmento(new Fragmento("S2.4", 100));          

        
        System.out.println("Tempo de armazenamento de " + a2 + ": " + media.getTempoArmazenamento(a2) + "\n");
        
        System.out.println(media);        
        
        System.out.println("Tempo de Recuperacao de " + a2 + ": " + media.getTempoLeitura("S2") + "\n");        
        
        
    }    
    
    
}
