parent
954c0001a5
commit
cc4c0a010b
|
@ -5,12 +5,29 @@ import com.dispose.common.GlobalVar;
|
||||||
import com.dispose.common.IPAddrType;
|
import com.dispose.common.IPAddrType;
|
||||||
import com.dispose.dispose.impl.DPTechImpl;
|
import com.dispose.dispose.impl.DPTechImpl;
|
||||||
import com.dispose.dispose.impl.VirtualDeviceImpl;
|
import com.dispose.dispose.impl.VirtualDeviceImpl;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The type Device router.
|
* The type Device router.
|
||||||
*/
|
*/
|
||||||
public class DeviceRouter {
|
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.
|
* Device router factory dispose entry manager.
|
||||||
*
|
*
|
||||||
|
@ -20,16 +37,25 @@ public class DeviceRouter {
|
||||||
* @return the dispose entry manager
|
* @return the dispose entry manager
|
||||||
*/
|
*/
|
||||||
public static DisposeEntryManager deviceRouterFactory(int devType, String ipAddr, IPAddrType ipType) {
|
public static DisposeEntryManager deviceRouterFactory(int devType, String ipAddr, IPAddrType ipType) {
|
||||||
|
String mapKey = getMapKey(devType, ipAddr);
|
||||||
|
|
||||||
if (GlobalVar.USED_VIRTUAL_DISPOSE_MODE) {
|
if (DEVICE_CACHE_MAP.containsKey(mapKey)) {
|
||||||
return new VirtualDeviceImpl(ipAddr);
|
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()) {
|
DisposeEntryManager dev = new VirtualDeviceImpl(ipAddr);
|
||||||
return new DPTechImpl(ipAddr);
|
DEVICE_CACHE_MAP.put(mapKey, dev);
|
||||||
}
|
return dev;
|
||||||
|
|
||||||
return new VirtualDeviceImpl(ipAddr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue