/** * A service has been removed. * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceRemoved(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (_addedServices.remove(qualifiedName, _addedServices.get(qualifiedName))) { this.getListener().serviceRemoved(event); } else { logger.finer("Service Removed called for a service already removed: " + event); } }
void handleServiceResolved(ServiceInfo info) { List list = (List) serviceListeners.get(info.type.toLowerCase()); if (list != null) { ServiceEvent event = new ServiceEvent(this, info.type, info.getName(), info); // Iterate on a copy in case listeners will modify it final ArrayList listCopy = new ArrayList(list); for (Iterator iterator = listCopy.iterator(); iterator.hasNext();) { ((ServiceListener) iterator.next()).serviceResolved(event); } } }
/** * A service has been added.<br/> * <b>Note:</b>This event is only the service added event. The service info associated with this event does not include resolution information.<br/> * To get the full resolved information you need to listen to {@link #serviceResolved(ServiceEvent)} or call {@link JmDNS#getServiceInfo(String, String, long)} * * <pre> * ServiceInfo info = event.getDNS().getServiceInfo(event.getType(), event.getName()) * </pre> * <p> * Please note that service resolution may take a few second to resolve. * </p> * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceAdded(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (null == _addedServices.putIfAbsent(qualifiedName, event.getInfo().clone())) { this.getListener().serviceAdded(event); ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { this.getListener().serviceResolved(event); } } else { logger.finer("Service Added called for a service already added: " + event); } }
for (Iterator iterator = serviceListenerList.iterator(); iterator.hasNext();) ((ServiceListener) iterator.next()).serviceAdded(event); for (Iterator iterator = serviceListenerList.iterator(); iterator.hasNext();) ((ServiceListener) iterator.next()).serviceRemoved(event);
listener.serviceAdded(new ServiceEvent(this, type, toUnqualifiedName(type, rec.name), null));
/** * A service has been added.<br/> * <b>Note:</b>This event is only the service added event. The service info associated with this event does not include resolution information.<br/> * To get the full resolved information you need to listen to {@link #serviceResolved(ServiceEvent)} or call {@link JmDNS#getServiceInfo(String, String, long)} * * <pre> * ServiceInfo info = event.getDNS().getServiceInfo(event.getType(), event.getName()) * </pre> * <p> * Please note that service resolution may take a few second to resolve. * </p> * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceAdded(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (null == _addedServices.putIfAbsent(qualifiedName, event.getInfo().clone())) { this.getListener().serviceAdded(event); ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { this.getListener().serviceResolved(event); } } else { logger.debug("Service Added called for a service already added: {}", event); } }
/** * A service has been added.<br/> * <b>Note:</b>This event is only the service added event. The service info associated with this event does not include resolution information.<br/> * To get the full resolved information you need to listen to {@link #serviceResolved(ServiceEvent)} or call {@link JmDNS#getServiceInfo(String, String, long)} * * <pre> * ServiceInfo info = event.getDNS().getServiceInfo(event.getType(), event.getName()) * </pre> * <p> * Please note that service resolution may take a few second to resolve. * </p> * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceAdded(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (null == _addedServices.putIfAbsent(qualifiedName, event.getInfo().clone())) { this.getListener().serviceAdded(event); ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { this.getListener().serviceResolved(event); } } else { logger.finer("Service Added called for a service already added: " + event); } }
/** * A service has been resolved. Its details are now available in the ServiceInfo record.<br/> * <b>Note:</b>This call back will never be called if the service does not resolve.<br/> * * @param event * The ServiceEvent providing the name, the fully qualified type of the service, and the service info record. */ synchronized void serviceResolved(ServiceEvent event) { ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { String qualifiedName = event.getName() + "." + event.getType(); ServiceInfo previousServiceInfo = _addedServices.get(qualifiedName); if (!_sameInfo(info, previousServiceInfo)) { if (null == previousServiceInfo) { if (null == _addedServices.putIfAbsent(qualifiedName, info.clone())) { this.getListener().serviceResolved(event); } } else { if (_addedServices.replace(qualifiedName, previousServiceInfo, info.clone())) { this.getListener().serviceResolved(event); } } } else { logger.finer("Service Resolved called for a service already resolved: " + event); } } else { logger.warning("Service Resolved called for an unresolved event: " + event); } }
/** * A service has been removed. * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceRemoved(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (_addedServices.remove(qualifiedName, _addedServices.get(qualifiedName))) { this.getListener().serviceRemoved(event); } else { logger.finer("Service Removed called for a service already removed: " + event); } }
/** * A service has been added.<br/> * <b>Note:</b>This event is only the service added event. The service info associated with this event does not include resolution information.<br/> * To get the full resolved information you need to listen to {@link #serviceResolved(ServiceEvent)} or call {@link JmDNS#getServiceInfo(String, String, long)} * * <pre> * ServiceInfo info = event.getDNS().getServiceInfo(event.getType(), event.getName()) * </pre> * <p> * Please note that service resolution may take a few second to resolve. * </p> * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceAdded(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (null == _addedServices.putIfAbsent(qualifiedName, event.getInfo().clone())) { this.getListener().serviceAdded(event); ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { this.getListener().serviceResolved(event); } } else { logger.finer("Service Added called for a service already added: " + event); } }
/** * A service has been resolved. Its details are now available in the ServiceInfo record.<br/> * <b>Note:</b>This call back will never be called if the service does not resolve.<br/> * * @param event * The ServiceEvent providing the name, the fully qualified type of the service, and the service info record. */ synchronized void serviceResolved(ServiceEvent event) { ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { String qualifiedName = event.getName() + "." + event.getType(); ServiceInfo previousServiceInfo = _addedServices.get(qualifiedName); if (!_sameInfo(info, previousServiceInfo)) { if (null == previousServiceInfo) { if (null == _addedServices.putIfAbsent(qualifiedName, info.clone())) { this.getListener().serviceResolved(event); } } else { if (_addedServices.replace(qualifiedName, previousServiceInfo, info.clone())) { this.getListener().serviceResolved(event); } } } else { logger.finer("Service Resolved called for a service already resolved: " + event); } } else { logger.warning("Service Resolved called for an unresolved event: " + event); } }
/** * A service has been removed. * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceRemoved(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (_addedServices.remove(qualifiedName, _addedServices.get(qualifiedName))) { this.getListener().serviceRemoved(event); } else { logger.debug("Service Removed called for a service already removed: {}", event); } }
/** * A service has been resolved. Its details are now available in the ServiceInfo record.<br/> * <b>Note:</b>This call back will never be called if the service does not resolve.<br/> * * @param event * The ServiceEvent providing the name, the fully qualified type of the service, and the service info record. */ synchronized void serviceResolved(ServiceEvent event) { ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { String qualifiedName = event.getName() + "." + event.getType(); ServiceInfo previousServiceInfo = _addedServices.get(qualifiedName); if (!_sameInfo(info, previousServiceInfo)) { if (null == previousServiceInfo) { if (null == _addedServices.putIfAbsent(qualifiedName, info.clone())) { this.getListener().serviceResolved(event); } } else { if (_addedServices.replace(qualifiedName, previousServiceInfo, info.clone())) { this.getListener().serviceResolved(event); } } } else { logger.debug("Service Resolved called for a service already resolved: {}", event); } } else { logger.warn("Service Resolved called for an unresolved event: {}", event); } }
/** * A service has been removed. * * @param event * The ServiceEvent providing the name and fully qualified type of the service. */ void serviceRemoved(ServiceEvent event) { String qualifiedName = event.getName() + "." + event.getType(); if (_addedServices.remove(qualifiedName, _addedServices.get(qualifiedName))) { this.getListener().serviceRemoved(event); } else { logger.finer("Service Removed called for a service already removed: " + event); } }
/** * A service has been resolved. Its details are now available in the ServiceInfo record.<br/> * <b>Note:</b>This call back will never be called if the service does not resolve.<br/> * * @param event * The ServiceEvent providing the name, the fully qualified type of the service, and the service info record. */ synchronized void serviceResolved(ServiceEvent event) { ServiceInfo info = event.getInfo(); if ((info != null) && (info.hasData())) { String qualifiedName = event.getName() + "." + event.getType(); ServiceInfo previousServiceInfo = _addedServices.get(qualifiedName); if (!_sameInfo(info, previousServiceInfo)) { if (null == previousServiceInfo) { if (null == _addedServices.putIfAbsent(qualifiedName, info.clone())) { this.getListener().serviceResolved(event); } } else { if (_addedServices.replace(qualifiedName, previousServiceInfo, info.clone())) { this.getListener().serviceResolved(event); } } } else { logger.finer("Service Resolved called for a service already resolved: " + event); } } else { logger.warning("Service Resolved called for an unresolved event: " + event); } }