Class MessageManager

java.lang.Object
es.ull.mazesolver.util.MessageManager

public class MessageManager extends Object
Clase que gestiona el paso de mensajes y la creación de grupos de mensajes entre agentes.
  • Constructor Details

    • MessageManager

      public MessageManager()
      Construye una nueva instancia de la clase.
  • Method Details

    • subscribeGroup

      public boolean subscribeGroup(MessageCommunication agent, String group)
      Suscribe el agente al grupo indicado, de manera que recibe los mensajes enviados a ese grupo.
      Parameters:
      agent - Agente que se quiere suscribir.
      group - Grupo al que suscribir el agente.
      Returns:
      true si el agente se añadió al grupo y false si no se pudo añadir el agente al grupo.
    • unsubscribeGroup

      public void unsubscribeGroup(MessageCommunication agent, String group)
      Hace que el agente deje de recibir mensajes del grupo especificado.
      Parameters:
      agent - Agente que quiere eliminar su suscripción.
      group - Grupo del cual eliminar la suscripción.
    • sendMessage

      public boolean sendMessage(MessageCommunication sender, String group, MessageCommunication.Message msg)
      Pone un mensaje a la cola de un grupo para ser enviado posteriormente cuando se llame a flushMessageQueues(). Que la inserción se realice satisfactoriamente no implica que el mensaje sea enviado.
      Parameters:
      sender - Agente que envía el mensaje.
      group - Grupo al que se está enviando el mensaje.
      msg - Mensaje que se quiere enviar.
      Returns:
      true si el mensaje se ha colocado en la cola satisfactoriamente o false si no se ha podido.
      See Also:
      flushMessageQueues()
    • createGroup

      public String createGroup()
      Crea un nuevo grupo y devuelve su nombre.
      Returns:
      Nombre del grupo recién creado.
    • groupCreated

      public boolean groupCreated(String group)
      Indica si un grupo ya ha sido creado.
      Parameters:
      group - Grupo del cual se quiere comprobar su existencia.
      Returns:
      Si el grupo existe o no.
    • isSubscribed

      public boolean isSubscribed(MessageCommunication agent, String group)
      Comprueba si un agente está suscrito a un grupo de mensajes determinado.
      Parameters:
      agent - Agente que se quiere comprobar.
      group - Grupo del que se quiere saber si el agente está suscrito.
      Returns:
      Si el agente está suscrito al grupo o no.
    • flushMessageQueues

      public void flushMessageQueues()
      Envía todos los mensajes en las colas a sus destinatarios, pero evitando enviar varias veces el mismo mensaje al mismo destinatario (es posible que un agente envíe el mismo mensaje a varios grupos y que haya algún agente en varios de ellos).