/** * */ package com.taobao.top.analysis.node.event; import java.util.concurrent.CountDownLatch; import com.taobao.top.analysis.util.TimeOutEvent; /** * 服务端的事件定义 * @author fangweng * @Email fangweng@taobao.com * 2011-11-29 * */ public class MasterNodeEvent implements INodeEvent,TimeOutEvent{ /** * */ private static final long serialVersionUID = -7679801760752260905L; MasterEventCode eventCode; String sequence; private transient CountDownLatch resultReadyFlag = new CountDownLatch(1); private transient Object response; protected transient long eventCreateTime = System.currentTimeMillis(); protected transient long maxEventHoldTime = 0; protected transient Object channel; public Object getResponse() { return response; } public void setResponse(Object response) { this.response = response; } public String getSequence() { return sequence; } public void setSequence(String sequence) { this.sequence = sequence; } public MasterEventCode getEventCode() { return eventCode; } public void setEventCode(MasterEventCode eventCode) { this.eventCode = eventCode; } public CountDownLatch getResultReadyFlag() { return resultReadyFlag; } public void setResultReadyFlag(CountDownLatch resultReadyFlag) { this.resultReadyFlag = resultReadyFlag; } @Override public long getEventCreateTime() { return eventCreateTime; } @Override public void setEventCreateTime(long eventCreateTime) { this.eventCreateTime = eventCreateTime; } public long getMaxEventHoldTime() { return maxEventHoldTime; } public void setMaxEventHoldTime(long maxEventHoldTime) { this.maxEventHoldTime = maxEventHoldTime; } @Override public int compareTo(TimeOutEvent event) { if (maxEventHoldTime == 0) return 1; if (event.getMaxEventHoldTime() == 0) return -1; return (int)(eventCreateTime + maxEventHoldTime * 1000 - event.getEventCreateTime() - event.getMaxEventHoldTime() * 1000); } public Object getChannel() { return channel; } public void setChannel(Object channel) { this.channel = channel; } }