All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gu.simplemq.IMessageQueueFactory Maven / Gradle / Ivy

There is a newer version: 2.3.17
Show newest version
package gu.simplemq;

import java.util.Map;

/**
 * 创建消息系统(message queue)实例的工厂接口,实现对消息系统(message queue)的抽象定义
 * @author guyadong
 *
 */
public interface IMessageQueueFactory extends IMQConnParameterSupplier,AutoCloseable{
	/**
	 * 用指定的参数初始化消息系统,只需要调用一次,初始化成功后第二次调用无效
	 * @param properties
	 * @return 当前对象
	 */
	IMessageQueueFactory init(Mapproperties);
	/**
	 * 用指定的参数初始化消息系统,只需要调用一次,初始化成功后第二次调用无效
	 * @param supplier 消息系统参数提供者对象
	 * @return 当前对象
	 */
	IMessageQueueFactory init(IMQConnParameterSupplier supplier);
	/**
	 * 用指定的参数初始化消息系统,只需要调用一次,初始化成功后第二次调用无效
	 * @param json JSON 格式的参数字符串
	 * @return 当前对象
	 */
	IMessageQueueFactory init(String json);
	/**
	 * @return 当前对象已经初始化返回true,否则返回false
	 */
	boolean initialized();
	/**
	 * 检查当前实例是否初始化,没有初始化抛出异常
	 * @return 当前对象
	 * @throws IllegalStateException  当前对象没有初始化
	 */
	IMessageQueueFactory checkInitialized();
	/**
	 * 设置当前对象为{@link MessageQueueFactorys}的默认实例
	 * @return 当前对象
	 */
	IMessageQueueFactory asDefaultFactory();
	/**
	 * 返回订阅器实例
	 * @return {@link ISubscriber}实例
	 */
	ISubscriber getSubscriber();
	/**
	 * 返回消息发布器实例
	 * @return {@link IPublisher}
	 */
	IPublisher getPublisher();
	/**
	 * 返回生产者实例
	 * @return {@link IProducer}
	 */
	IProducer getProducer();
	
	/**
	 * 返回消费者实例
	 * @return {@link IConsumer}
	 */
	IConsumer getConsumer();

	@Override
	MessageQueueType getImplType();
	/**
	 * @return 返回当前工厂实例的初始化参数
	 */
	@Override
	Map getMQConnParameters();
	
	/**
	 * 测试当前连接参数是否可连通
	 * @return 如果可连接返回{@code true},否则返回{@code false}
	 */
	public boolean testConnect();
	/**
	 * 为消息发布对象({@link IProducer})指定订阅者/消息者数量获取接口实例
* 对于不支持获取订阅者/消息者数量的实现中可以通过此接口添加实现 * @param advisor * @return 当前对象 */ IMessageQueueFactory setAdvisor(IAdvisor advisor); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy