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.ClientInstance; import com.taover.heartbeat.bean.ClientRequest; public class ClientHolderImpl implements ClientHolder{ Map clientMap = new HashMap(); @Override public List getClientInstanceList() { return new ArrayList(clientMap.values()); } @Override public void flushClientStatus(ClientInstance clientInstance) { clientInstance.flush(); } @Override public void registryClientInstance(ClientRequest clientRequest) { synchronized (this.clientMap) { ClientInstance client = null; if(clientMap.containsKey(clientRequest.getIdentity())) { client = clientMap.get(clientRequest.getIdentity()); clientMap.put(client.getIdentity(), client); }else { client = new ClientInstance(clientRequest); clientMap.put(client.getIdentity(), client); } client.dealClientRequest(clientRequest); } } }