package agentes;

import java.io.IOException;

import jade.core.*;
import jade.core.behaviours.*;
import jade.lang.acl.*;
 
public class Emisor extends Agent
{
    protected void setup()
    {
        addBehaviour(new EmisorComportaminento());
    }
    
    class EmisorComportaminento extends SimpleBehaviour
    {
        boolean fin = false;
        public void action()
        {
            System.out.println(getLocalName() +": Preparandose para enviar un mensaje a receptor. Presione intro para enviar.");
            AID id = new AID();
            id.setLocalName("Receptor");
 
        // Creación del objeto ACLMessage
            ACLMessage mensaje = new ACLMessage(ACLMessage.REQUEST);
 
        //Rellenar los campos necesarios del mensaje
            mensaje.setSender(getAID());
            mensaje.setLanguage("Español");
            mensaje.addReceiver(id);
            mensaje.setContent("Hola, que tal receptor ?");
 
        //Envia el mensaje a los destinatarios
            try {
				int read = System.in.read();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
            send(mensaje);
 
            System.out.println(getLocalName() +": Enviando hola a receptor");

            
	      //Espera la respuesta
	        ACLMessage mensaje2 = blockingReceive(); //Recepción y bloqueo simultaneo
	        if (mensaje2!= null)
	        {
	            System.out.println(getLocalName() + ": acaba de recibir el siguiente mensaje: ");
	            System.out.println(mensaje2.toString());
	            fin = true;
	        }

            fin = true;
        }
 
        public boolean done()
        {
            return fin;
        }
    }

}