package com.alibaba.rocketmq.namesrv.topic; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Map; import com.alibaba.rocketmq.common.namesrv.TopicRuntimeData; import com.alibaba.rocketmq.common.protocol.route.QueueData; import com.alibaba.rocketmq.namesrv.common.MergeResult; import com.alibaba.rocketmq.remoting.protocol.RemotingCommand; /** * @author lansheng.zj@taobao.com */ public interface TopicRuntimeDataManager { // // public void getBrokerList(); // public void registerOrderTopic(); // public void unRegisterOrderTopic(); // public void getOrderTopicList(); /** * ��ȡtopic��·����Ϣ * * @param topic */ public RemotingCommand getRouteInfoByTopic(String topic); /** * ��ȡTopicRuntimeData��һ��snapshot * * @return */ public RemotingCommand getTopicRuntimeData(); /** * �ϲ�TopicRuntimeData���� * * @param newTopicData * @return �ϲ��Ľ�� {@link MergeResult} */ public int merge(TopicRuntimeData newTopicData); /** * ע��broker��ַ�����أ�������ɢ������namesrv��� * * @param address * broker��ַ * @return */ public RemotingCommand registerBroker(String address); /** * ע��broker��ַ������ * * @param address * @return */ public RemotingCommand registerBrokerSingle(String address); /** * ע��������ע���broker��������ɢ�������namesrv��� * * @param brokerName * ��ע���brokername * @return */ public RemotingCommand unRegisterBroker(String brokerName); /** * ע��������ע���broker * * @param brokerName * ��ע���brokername * @return */ public RemotingCommand unRegisterBrokerSingle(String brokerName); /** * ע��˳����Ϣ�����õ����أ�������ɢ������namesrv��� * * @param topic * @param orderConf * @return */ public RemotingCommand registerOrderTopic(String topic, String orderConf); /** * ע��˳����Ϣ�����õ����� * * @param topic * @param orderConf * @return */ public RemotingCommand registerOrderTopicSingle(String topic, String orderConf); /** * �ϲ�QueueData���� * * @param queueDataMap * @return */ public boolean mergeQueueData(Map<String, QueueData> queueDataMap); /** * �ϲ�BrokerData���� * * @param brokerName * @param brokerId * @param address * @return */ public boolean mergeBrokerData(String brokerName, long brokerId, String address); /** * ע����ַΪaddr��broker������� * * @param addr * @return */ public RemotingCommand unRegisterBrokerSingleByAddr(String addr); /** * ע����ַΪaddr��broker������� * @param addr * @return */ public RemotingCommand unRegisterBrokerByAddr(String addr); /** * �رգ���Դ���� */ public void shutdown(); /** * ��ȡbroker��ַ�б� * * @return */ public ArrayList<String> getBrokerList(); /** * ��ʼ�� * * @return */ public boolean init(); /** * add property change listener * * @param propertyName * @param listener */ public void addPropertyChangeListener(final String propertyName, final PropertyChangeListener listener); /** * remove property change listener * * @param listener */ public void removePropertyChangeListener(final PropertyChangeListener listener); /** * fire property change * * @param propertyName * @param oldValue * @param newValue */ public void firePropertyChange(String propertyName, Object oldValue, Object newValue); }