ServerHolderImpl.java 977 Bytes
package com.taover.heartbeat;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.taover.heartbeat.bean.ServerInstance;

public class ServerHolderImpl implements ServerHolder {
	Map<String, ServerInstance> serverMap = new HashMap<String, ServerInstance>();

	@Override
	public List<ServerInstance> getServerInstanceList() {
		return new ArrayList<ServerInstance>(serverMap.values());
	}

	@Override
	public void registeServer(String code, String url, int fixRateSec, int maxWaitSec) throws Exception {
		ServerInstance server = new ServerInstance(code, url, fixRateSec, maxWaitSec);
		synchronized (this.serverMap) {
			if(serverMap.containsKey(server.getIdentity())) {
				server = serverMap.get(server.getIdentity());
			}else {
				serverMap.put(server.getIdentity(), server);
			}
		}
		server.flush();
	}

	@Override
	public void flushServerStatus(ServerInstance serverInstance) {
		serverInstance.flush();
	}
}