package br.edu.ifba.inf008.mediaCenter.session;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import br.edu.ifba.inf008.mediaCenter.model.Servidor;
import br.edu.ifba.inf008.mediaCenter.persistencia.ServidorDAO;
import br.edu.ifba.inf008.mediaCenter.persistencia.ServidorDAOMem;

public class MediaCenter{
	
	public ServidorDAO servidorDAO;
    
    public MediaCenter(){
    	this.servidorDAO = new ServidorDAOMem();
    }    

    public double getTempoArmazenamento(long tamanho){
        double tempo = 0;
        Collection<Servidor> servidores = this.servidorDAO.findAll();	
        Servidor destino = null;  
	    for(Servidor s : servidores)
	      if(s.temCapacidade(tamanho) && 
	        ((destino== null)|| (destino != null && destino.getLatenciaEscrita() > s.getLatenciaEscrita())))
	          destino = s;
	      tempo += destino.gravar(tamanho); 
        return tempo;
    }  
    
    public void addServidor(Servidor servidor){
    	this.servidorDAO.save(servidor);
    }  
    
    public String toString(){
        String str = "Servidores\n";
        Collection<Servidor> servidores = this.servidorDAO.findAll();	
        for(Servidor s : servidores)
          str += s.toString() + "\n";
        return str + "\n"; 
        
    }    
    
}
