synchronized public void addDevice(LocalDevice localDevice) { localItems.add(localDevice); }
synchronized public void addLocalSubscription(LocalGENASubscription subscription) { localItems.addSubscription(subscription); }
void maintain() { if(getDeviceItems().isEmpty()) return ; if(now - lastAliveIntervalTimestamp > aliveIntervalMillis) { lastAliveIntervalTimestamp = now; for (RegistryItem<UDN, LocalDevice> localItem : getDeviceItems()) { if (isAdvertised(localItem.getKey())) { log.finer("Flooding advertisement of local item: " + localItem); expiredLocalItems.add(localItem); for (RegistryItem<UDN, LocalDevice> localItem : getDeviceItems()) { if (isAdvertised(localItem.getKey()) && localItem.getExpirationDetails().hasExpired(true)) { log.finer("Local item has expired: " + localItem); expiredLocalItems.add(localItem); advertiseAlive(expiredLocalItem.getItem()); expiredLocalItem.getExpirationDetails().stampLastRefresh(); for (RegistryItem<String, LocalGENASubscription> item : getSubscriptionItems()) { if (item.getExpirationDetails().hasExpired(false)) { expiredIncomingSubscriptions.add(item); removeSubscription(subscription.getItem()); subscription.getItem().end(CancelReason.EXPIRED);
public void advertiseLocalDevices() { for (RegistryItem<UDN, LocalDevice> localItem : deviceItems) { if (isAdvertised(localItem.getKey())) advertiseAlive(localItem.getItem()); } }
void add(final LocalDevice localDevice, DiscoveryOptions options) throws RegistrationException { setDiscoveryOptions(localDevice.getIdentity().getUdn(), options); for (Resource deviceResource : getResources(localDevice)) { ); getDeviceItems().add(localItem); log.fine("Registered local device: " + localItem); if (isByeByeBeforeFirstAlive(localItem.getKey())) advertiseByebye(localDevice, true); if (isAdvertised(localItem.getKey())) advertiseAlive(localDevice);
boolean remove(final LocalDevice localDevice, boolean shuttingDown) throws RegistrationException { LocalDevice registeredDevice = get(localDevice.getIdentity().getUdn(), true); if (registeredDevice != null) { setDiscoveryOptions(localDevice.getIdentity().getUdn(), null); getDeviceItems().remove(new RegistryItem(localDevice.getIdentity().getUdn())); for (Resource deviceResource : getResources(localDevice)) { if (registry.removeResource(deviceResource)) { log.fine("Unregistered resource: " + deviceResource); Iterator<RegistryItem<String, LocalGENASubscription>> it = getSubscriptionItems().iterator(); while (it.hasNext()) { final RegistryItem<String, LocalGENASubscription> incomingSubscription = it.next(); if (isAdvertised(localDevice.getIdentity().getUdn())) advertiseByebye(localDevice, !shuttingDown);
synchronized public LocalDevice getLocalDevice(UDN udn, boolean rootOnly) { return localItems.get(udn, rootOnly); }
synchronized public DiscoveryOptions getDiscoveryOptions(UDN udn) { return localItems.getDiscoveryOptions(udn); }
Collection<LocalDevice> get() { Set<LocalDevice> c = new HashSet<>(); for (RegistryItem<UDN, LocalDevice> item : getDeviceItems()) { c.add(item.getItem()); } return Collections.unmodifiableCollection(c); }
synchronized public void advertiseLocalDevices() { localItems.advertiseLocalDevices(); }
synchronized public LocalGENASubscription getLocalSubscription(String subscriptionId) { return localItems.getSubscription(subscriptionId); }
void add(final LocalDevice localDevice, DiscoveryOptions options) throws RegistrationException { setDiscoveryOptions(localDevice.getIdentity().getUdn(), options); for (Resource deviceResource : getResources(localDevice)) { ); getDeviceItems().add(localItem); log.fine("Registered local device: " + localItem); if (isByeByeBeforeFirstAlive(localItem.getKey())) advertiseByebye(localDevice, true); if (isAdvertised(localItem.getKey())) advertiseAlive(localDevice);
boolean remove(final LocalDevice localDevice, boolean shuttingDown) throws RegistrationException { LocalDevice registeredDevice = get(localDevice.getIdentity().getUdn(), true); if (registeredDevice != null) { setDiscoveryOptions(localDevice.getIdentity().getUdn(), null); getDeviceItems().remove(new RegistryItem(localDevice.getIdentity().getUdn())); for (Resource deviceResource : getResources(localDevice)) { if (registry.removeResource(deviceResource)) { log.fine("Unregistered resource: " + deviceResource); Iterator<RegistryItem<String, LocalGENASubscription>> it = getSubscriptionItems().iterator(); while (it.hasNext()) { final RegistryItem<String, LocalGENASubscription> incomingSubscription = it.next(); if (isAdvertised(localDevice.getIdentity().getUdn())) advertiseByebye(localDevice, !shuttingDown);
synchronized public Collection<LocalDevice> getLocalDevices() { return Collections.unmodifiableCollection(localItems.get()); }
public void advertiseLocalDevices() { for (RegistryItem<UDN, LocalDevice> localItem : deviceItems) { if (isAdvertised(localItem.getKey())) advertiseAlive(localItem.getItem()); } }
protected boolean isByeByeBeforeFirstAlive(UDN udn) { // Defaults to false return getDiscoveryOptions(udn) != null && getDiscoveryOptions(udn).isByeByeBeforeFirstAlive(); }
Collection<LocalDevice> get() { Set<LocalDevice> c = new HashSet(); for (RegistryItem<UDN, LocalDevice> item : getDeviceItems()) { c.add(item.getItem()); } return Collections.unmodifiableCollection(c); }
synchronized public void advertiseLocalDevices() { localItems.advertiseLocalDevices(); }