/*
 * Creado el 27-feb-04
 *
 */
package es.ejie.frmk.conectores.conectorJMS;

import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;

/**
 * Iterface para que el Conector JMS proporcione los objetos de infraestructura y la lógica de programación 
 * con los que se realiza la comunicación de mensajes entre componentes, aplicaciones web y/o servidores de aplicación.
 */
public interface Q70ConectorJMSInterface {
	
	/**
	 * Obtiene una conexion JMS para un usuario contra una factoria en una ubicación dada (Factoría de conexiones JMS). Si la
	 * ubicacion es nula, será local
	 * @param usuario usuario
	 * @param passwordpassword
	 * @param ubicacion ubicación de la maquina definida en el fichero de configuracion de JMS
	 * @return conexion
	 * @throws Q70ConectorJMSExcepcion
	 */			
	public TopicConnection getConnection(String usuario, String password, String ubicacion) throws Q70ConectorJMSExcepcion;
	/**
	 * Obtiene una conexion JMS para un usuario contra una factoria en una ubicación dada (Factoría de conexiones JMS). Si la
	 * ubicacion es nula, será local
	 * @param ubicacion ubicación de la maquina definida en el fichero de configuracion de JMS
	 * @return conexion
	 * @throws Q70ConectorJMSExcepcion
	 */			
	public TopicConnection getConnection(String ubicacion) throws Q70ConectorJMSExcepcion;
	/**
	 * Obtiene una sesion para una ubicación dada, es decir, para una conexión ya establecida
	 * @param String ubicacion 
	 * @return sesion
	 * @throws Q70ConectorJMSExcepcion
	 */			
	public TopicSession getSession(String ubicacion) throws Q70ConectorJMSExcepcion;
	/**
	 * Obtiene un Topic con un nombre jndi dado en una ubicacion determinada. Si la ubicación es nula
	 * se trata de la maquina local
	 * @param nombreTopic nombre de la factoria de JMS
	 * @param ubicacion ubicación de la maquina definida en el fichero de configuracion de JMS 
	 * @return sesion
	 * @throws Q70ConectorJMSExcepcion
	 */				
	public Topic getTopic(String nombreTopic, String ubicacion) throws Q70ConectorJMSExcepcion;	
		
}
