package com.yihu.hos.common.listener;

/**
 * @created Airhead 2016/8/2.
 */
public interface HosServiceListener {
    /**
     * 当外界组件通知一个新的processor处理器被定义时，该事件被触发。
     *
     * @param systemId    本次processor处理器变化，所涉及的业务系统唯一标识。在zookeeper数据结构中就是“systemNameA”。
     * @param packageName processor处理器定义涉及的class包名
     * @param className   processor处理器定义涉及的class类名
     * @param path    processor处理器定义涉及的class内容，如果zookeeper数据结构中class分片存储，在业务级接口层面上也进行了合并
     */
    void onProcessorAdded(String systemId, String packageName, String className, String path);

    /**
     * 当外界组件通知一个已有的processor处理器data部分发生变化时，该事件被触发。
     */
    void onProcessorDataChanged(String systemId, String packageName, String className, String path);

    /**
     * 当外界组件通知一个新的RouteDefine路由被定义时，该事件被触发
     */
    void onRouteDefineAdded(String systemId, String packageName, String className, String path);

    /**
     * 当外界组件通知一个已有的RouteDefine路由定义被改变时，主要就是路由定义内容被改变时，该事件被触发。
     */
    void onRouteDefineChanged(String systemId, String packageName, String className, String path);

    /**
     * 当外界组件通知一个已有的RouteDefine路由定义被删除时，该事件被触发。
     */
    void onRouteDefineDelete(String systemId, String packageName, String className);
}
