public RendezvousCollection(final Rendezvous rendezvous) { this.rendezvous = rendezvous; this.rendezvous.addListener(this); this.collectionLoaded(); }
@Override public Void run() { bonjour.init(); return null; } });
@Override public void serviceLost(final Host host) { this.collectionItemRemoved(host); }
public static synchronized Rendezvous instance() { if(null == rendezvous) { if(PreferencesFactory.get().getBoolean("rendezvous.enable")) { rendezvous = new RendezvousFactory().create(); } else { rendezvous = new DisabledRendezvous(); } } return rendezvous; }
private RendezvousCollection() { this(RendezvousFactory.instance()); }
@Override public void serviceLost(final Host servicename) { if(log.isInfoEnabled()) { log.info(String.format("Service with name %s lost", servicename)); } if(this.acquire()) { for(RendezvousListener listener : listeners) { listener.serviceLost(servicename); } } }
@Override public void quit() { for(String protocol : this.getServiceTypes()) { if(log.isInfoEnabled()) { log.info(String.format("Removing service listener for %s", protocol)); } final DNSSDService service = browsers.get(protocol); if(null == service) { continue; } service.stop(); } super.quit(); }
@Override public void selected(final NSMenuItem sender) { MainController.newDocument().mount(RendezvousCollection.defaultCollection().lookup(sender.representedObject())); } });
@Override public Object[] toArray() { Host[] content = new Host[this.size()]; int i = 0; for(Host host : this) { content[i] = host; } return content; }
public static RendezvousCollection defaultCollection() { synchronized(lock) { if(null == RENDEZVOUS_COLLECTION) { RENDEZVOUS_COLLECTION = new RendezvousCollection(); } return RENDEZVOUS_COLLECTION; } }
public RendezvousMenuDelegate(final MenuCallback callback) { this(RendezvousCollection.defaultCollection(), callback); }
@Override public void serviceResolved(final String identifier, final Host host) { this.collectionItemAdded(host); }
@Override public Iterator<Host> iterator() { return rendezvous.iterator(); }
@Override public Host get(int row) { return rendezvous.getService(row); }
@Override public int size() { return rendezvous.numberOfServices(); }
@Override public void quit() { notifier.quit(); }
@Override public void serviceResolved(final String identifier, final Host host) { notification.notify("Bonjour", bonjour.getDisplayedName(identifier)); }
/** * @param fullname Service name * @param host Bookmark */ protected void add(final String fullname, final Host host) { if(log.isDebugEnabled()) { log.debug(String.format("Add resolved host %s for full name %s", host, fullname)); } if(null == services.put(fullname, host)) { notifier.serviceResolved(fullname, host); } }
protected void remove(final String identifier) { if(log.isDebugEnabled()) { log.debug(String.format("Remove host with identifier %s", identifier)); } final Host host = services.remove(identifier); if(null == host) { return; } notifier.serviceLost(host); }
@Override public boolean isEmpty() { return size() == 0; }