public void startModules(
      Collection<ICaptureInterface> enabledInterfaces,
      long spaceId,
      long realmId,
      boolean createInterfaceEntities) {
    if (running) return;

    final Set<WifiDaemonInterface> ifaces = new HashSet<WifiDaemonInterface>();
    for (ICaptureInterface iface : enabledInterfaces) {
      if (!(iface instanceof IWirelessCaptureInterface)) {
        // XXX
      }
      final IWirelessCaptureInterface wifiInterface = (IWirelessCaptureInterface) iface;
      if (createInterfaceEntities) {
        final NetworkInterfaceEntity interfaceEntity =
            daemon.createNetworkInterfaceEntity(realmId, spaceId, iface.getName());
        ifaces.add(new WifiDaemonInterface(wifiInterface, interfaceEntity.getId()));
      } else {
        ifaces.add(new WifiDaemonInterface(wifiInterface, realmId));
      }
    }

    for (EnabledWifiModule module : enabledModules) {
      module.start((IWifiSniffingEngine) daemon.getSniffingEngine(), ifaces, spaceId);
    }
    running = true;
  }
 private void enableModule(IWirelessSniffingModule module) {
   checkValidStateChange(module);
   synchronized (enabledModules) {
     if (findEnabledModule(module) != null) return;
     enabledModules.add(new EnabledWifiModule(module, daemon.getLogger()));
   }
 }
  void setWirelessModuleEnableState(IMessenger messenger, SetWirelessModuleEnableState msg)
      throws MessengerException {
    for (ModuleRecord record : msg.getModuleRecords()) {
      final IWirelessSniffingModule sniffingModule = modulesByName.get(record.getName());
      if (sniffingModule == null) {
        final String error = "No wireless sniffing module found with name " + record.getName();
        daemon.getLogger().warning(error);
        messenger.respondError(msg, error);
        return;
      }

      setModuleEnabled(sniffingModule, record.isEnabled());
      messenger.respondOk(msg);
    }
  }