content: package com.alipay.bluewhale.core.daemon.supervisor;
  
  import java.util.List;
  import java.util.Map;
  
  import backtype.storm.Config;
  
  import com.alipay.bluewhale.core.cluster.StormClusterState;
  import com.alipay.bluewhale.core.utils.TimeUtils;
  /**
   *supervisor
   */
  class Heartbeat implements Runnable {
  
  	private Map conf;
  
  	private StormClusterState stormClusterState;
  
  	private String supervisorId;
  
  	private String myHostName;
  
  	private int startTime;
  
  	/**
  	 * @param conf
  	 * @param stormClusterState
  	 * @param supervisorId
  	 * @param myHostName
  	 */
  	public Heartbeat(Map conf, StormClusterState stormClusterState,
  			String supervisorId, String myHostName, int startTimeStamp) {
  		this.stormClusterState = stormClusterState;
  		this.supervisorId = supervisorId;
  		this.conf = conf;
  		this.myHostName = myHostName;
  		this.startTime = startTimeStamp;
  	}
  
  	@SuppressWarnings("unchecked")
  	@Override
  	public void run() {
  
  		SupervisorInfo sInfo = new SupervisorInfo(
  				TimeUtils.current_time_secs(), myHostName,
  				(List<Integer>) conf.get(Config.SUPERVISOR_SLOTS_PORTS),
  				(int) (TimeUtils.current_time_secs() - startTime));
  
  		stormClusterState.supervisor_heartbeat(supervisorId, sInfo);
  	}
  
  }
  