parent
954c0001a5
commit
cc4c0a010b
|
@ -5,12 +5,29 @@ import com.dispose.common.GlobalVar;
|
|||
import com.dispose.common.IPAddrType;
|
||||
import com.dispose.dispose.impl.DPTechImpl;
|
||||
import com.dispose.dispose.impl.VirtualDeviceImpl;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
/**
|
||||
* The type Device router.
|
||||
*/
|
||||
public class DeviceRouter {
|
||||
|
||||
/**
|
||||
* The constant deviceCacheMap.
|
||||
*/
|
||||
private static final ConcurrentHashMap<String, DisposeEntryManager> DEVICE_CACHE_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
/**
|
||||
* Gets map key.
|
||||
*
|
||||
* @param devType the dev type
|
||||
* @param ipAddr the ip addr
|
||||
* @return the map key
|
||||
*/
|
||||
private static String getMapKey(int devType, String ipAddr) {
|
||||
return devType + "_" + ipAddr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Device router factory dispose entry manager.
|
||||
*
|
||||
|
@ -20,16 +37,25 @@ public class DeviceRouter {
|
|||
* @return the dispose entry manager
|
||||
*/
|
||||
public static DisposeEntryManager deviceRouterFactory(int devType, String ipAddr, IPAddrType ipType) {
|
||||
String mapKey = getMapKey(devType, ipAddr);
|
||||
|
||||
if (GlobalVar.USED_VIRTUAL_DISPOSE_MODE) {
|
||||
return new VirtualDeviceImpl(ipAddr);
|
||||
if (DEVICE_CACHE_MAP.containsKey(mapKey)) {
|
||||
return DEVICE_CACHE_MAP.get(mapKey);
|
||||
} else {
|
||||
if (GlobalVar.USED_VIRTUAL_DISPOSE_MODE) {
|
||||
DisposeEntryManager dev = new VirtualDeviceImpl(ipAddr);
|
||||
DEVICE_CACHE_MAP.put(mapKey, dev);
|
||||
return dev;
|
||||
} else if (devType == DisposeDeviceType.DPTECH_UMC.getCode()) {
|
||||
DisposeEntryManager dev = new DPTechImpl(ipAddr);
|
||||
DEVICE_CACHE_MAP.put(mapKey, dev);
|
||||
return dev;
|
||||
}
|
||||
}
|
||||
|
||||
if (devType == DisposeDeviceType.DPTECH_UMC.getCode()) {
|
||||
return new DPTechImpl(ipAddr);
|
||||
}
|
||||
|
||||
return new VirtualDeviceImpl(ipAddr);
|
||||
DisposeEntryManager dev = new VirtualDeviceImpl(ipAddr);
|
||||
DEVICE_CACHE_MAP.put(mapKey, dev);
|
||||
return dev;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue