/**
*
*/
package com.taobao.top.analysis.node;
import com.taobao.top.analysis.config.IConfig;
import com.taobao.top.analysis.exception.AnalysisException;
import com.taobao.top.analysis.node.event.INodeEvent;
/**
* 基础节点的接口定义
* @author fangweng
* @Email fangweng@taobao.com
* 2011-11-28
*
*/
public interface INode<E extends INodeEvent,C extends IConfig> extends Runnable,IComponent<C>{
/**
* 节点的主流程处理逻辑
*/
public void process() throws AnalysisException;
/**
* 向Node发送消息
* @param event
* @return
*/
public boolean addEvent(E event);
/**
* 节点如何处理事件的实现
* @param event
*/
public void processEvent(E event) throws AnalysisException;
/**
* 启动节点
*/
public void startNode();
/**
* 停止节点
*/
public void stopNode();
}