package Virtual;


import java.util.Hashtable;
//import java.net.Socket;

import java.io.OutputStream;
//import java.io.BufferedWriter;
//import java.io.OutputStreamWriter;

import java.io.IOException;

import java.util.Set;
import java.util.Iterator;

public class Comunication {

    public OutputStream ce;
    public OutputStream co;

    Hashtable<Integer, OutputStream> id = new Hashtable<Integer, OutputStream>();

     public void HashAddID(Integer ids, OutputStream socket)
    {
        id.put(ids, socket);
    }

     public void SendPacketID(Integer ids, String data)
     {
        try
                    {
                            //ce = id.get(ids).getOutputStream();
                            //new BufferedWriter(new OutputStreamWriter(ce));
                            id.get(ids).write(VirtualUser.StringToByte(data + (char)1));
                            id.get(ids).flush();
                            System.out.println("O-[" + ids + "]->> " + data + (char)1); //Packet Output
                    }
                    catch (IOException ex)
                    {
                            System.out.println("Eccezione nell'invio dei dati! "+ex.getMessage());
                    }

    }
     
    public void Delete(Integer ids)
    {
        id.remove(ids);
    }

    public boolean isOnline(Integer ids)
    {
       if(id.get(ids) == null){
           return false;
       }else{
       //return id.get(ids).isConnected();
           return true;
       }
    }
    
    public void SendAll(String messaggio){

        Set<Integer> set = id.keySet();
        Iterator<Integer> itr = set.iterator();

    while (itr.hasNext()) {

      SendPacketID(itr.next(), messaggio);

    }
    }


}
