/**
*
*/
package com.taobao.top.analysis.node.connect;
import com.taobao.top.analysis.config.SlaveConfig;
import com.taobao.top.analysis.node.IComponent;
import com.taobao.top.analysis.node.component.SlaveNode;
import com.taobao.top.analysis.node.event.GetTaskRequestEvent;
import com.taobao.top.analysis.node.event.SendMonitorInfoEvent;
import com.taobao.top.analysis.node.event.SendResultsRequestEvent;
import com.taobao.top.analysis.node.job.JobTask;
import com.taobao.top.analysis.node.monitor.MasterMonitorInfo;
/**
* Slave端的通信组件,主要用于服务端与客户端通信,可自定义扩展为内存交互,socket交互,db交互等
* @author fangweng
* @Email fangweng@taobao.com
* 2011-11-29
*
*/
public interface ISlaveConnector extends IComponent<SlaveConfig>{
/**
* 请求任务
* @param 请求任务参数
* @return
*/
public JobTask[] getJobTasks(GetTaskRequestEvent requestEvent);
/**
* 发送分析后的结果
* @param 分析后的结果
* @param 支持多个master分担处理结果
* @return
*/
public String sendJobTaskResults(SendResultsRequestEvent jobResponseEvent,String master);
/**
* 向Master发送Slave监控信息
*/
public MasterMonitorInfo sendMonitorInfo(SendMonitorInfoEvent sendSlaveMonitorInfoEvent);
/**
* 运行期可以切换主master
* @param master
*/
public void changeMaster(String master);
/**
* 设置slaveNode
* @param slaveNode
*/
public void setSlaveNode(SlaveNode slaveNode);
}