package com.netifera.platform.net.wifi.internal.sniffing.daemon; import java.util.HashMap; import java.util.Map; import com.netifera.platform.api.events.IEventHandler; import com.netifera.platform.api.log.ILogManager; import com.netifera.platform.api.log.ILogger; import com.netifera.platform.api.probe.IProbe; import com.netifera.platform.net.daemon.sniffing.ISniffingDaemon; import com.netifera.platform.net.daemon.sniffing.ISniffingDaemonFactory; import com.netifera.platform.net.wifi.sniffing.IWifiSniffingDaemon; import com.netifera.platform.net.wifi.sniffing.IWifiSniffingDaemonFactory; public class WifiSniffingDaemonFactory implements IWifiSniffingDaemonFactory { private ISniffingDaemonFactory sniffingDaemonFactory; private ILogger logger; private Map<IProbe, RemoteWifiSniffingDaemon> probeMap = new HashMap<IProbe, RemoteWifiSniffingDaemon>(); public IWifiSniffingDaemon createForProbe(IProbe probe, IEventHandler changeHandler) { if(probeMap.containsKey(probe)) { return probeMap.get(probe); } final ISniffingDaemon sniffingDaemonStub = sniffingDaemonFactory.createForProbe(probe, changeHandler); final RemoteWifiSniffingDaemon remote = new RemoteWifiSniffingDaemon(probe, logger, sniffingDaemonStub); probeMap.put(probe, remote); return remote; } protected void setSniffingDaemonFactory(ISniffingDaemonFactory factory) { sniffingDaemonFactory = factory; } protected void unsetSniffingDaemonFactory(ISniffingDaemonFactory factory) { sniffingDaemonFactory = null; } protected void setLogManager(ILogManager logManager) { logger = logManager.getLogger("Wifi Sniffing Daemon"); } protected void unsetLogManager(ILogManager logManager) { } }