protected void removeFromAssignedToMe(InetSocketAddress remoteSocket, Token token) { try{ lock.readLock().lock(); if (!this.assignedToMe.contains(remoteSocket, token)) { return; } } finally { lock.readLock().unlock(); } try{ lock.writeLock().lock(); byte[] endpointID = this.assignedToMe.remove(remoteSocket, token); LOG.info("Removed ID to identify myself at remote endpoint {}: {}", remoteSocket, new EndpointID(endpointID)); } finally { lock.writeLock().unlock(); } }
public static String getDescription(String locale, NamespacedKey power, String property) { Plugin plugin = extensions.get(power.getNamespace()); if (!PowerManager.descriptionResolvers.contains(plugin, locale)) { return null; } return PowerManager.descriptionResolvers.get(plugin, locale).apply(power, property); }
public static <T extends Power> T adaptPower(Power power, Class<T> specified) { List<Class<? extends Power>> generals = Arrays.asList(getMeta(power.getNamespacedKey()).generalInterface()); Set<Class<? extends Power>> statics = Power.getStaticInterfaces(power.getClass()); List<Class<? extends Power>> preferences = generals.stream().filter(statics::contains).collect(Collectors.toList()); for (Class<? extends Power> general : preferences) { if (adapters.contains(general, specified)) { return (T) adapters.get(general, specified).apply(power); } } throw new ClassCastException(); }
private void addCallback(InetSocketAddress remoteSocket, Token token, ClientCallback clientCallback) { try { this.lock.readLock().lock(); if (this.clientCallbacks.contains(remoteSocket, token)) { log.error("Tried to use token twice (remote endpoint: {}, token: {})", remoteSocket, token); return; } } finally { this.lock.readLock().unlock(); } try { this.lock.writeLock().lock(); if (this.clientCallbacks.contains(remoteSocket, token)) { log.error("Tried to use token twice (remote endpoint: {}, token: {})", remoteSocket, token); } else { clientCallbacks.put(remoteSocket, token, clientCallback); log.info("Added callback (remote endpoint: {}, token: {})", remoteSocket, token); if (this.clientCallbacks.size() > 1000) { log.error("More than 1000 callbacks!"); } } } finally { this.lock.writeLock().unlock(); } }
private CoapResponse removeTransfer(InetSocketAddress remoteSocket, Token token) { try { this.lock.readLock().lock(); if (!this.transfers2.contains(remoteSocket,token)) { return null; } } finally { this.lock.readLock().unlock(); } try { this.lock.writeLock().lock(); CoapResponse coapResponse = this.transfers2.remove(remoteSocket, token); if (coapResponse != null) { this.transfers1.remove(remoteSocket, coapResponse.getMessageID()); } return coapResponse; } finally { this.lock.writeLock().unlock(); } }
protected void removeFromAssignedByMe(InetSocketAddress remoteSocket, Token token, boolean releaseEndpointID) { try { lock.readLock().lock(); if (!this.assignedByMe2.contains(remoteSocket, token)) { return; } } finally { lock.readLock().unlock(); } try{ lock.writeLock().lock(); EndpointID endpointID = this.assignedByMe2.remove(remoteSocket, token); if (endpointID != null) { this.assignedByMe1.remove(endpointID, token); if (releaseEndpointID) { this.factory.passBackEndpointID(endpointID); } LOG.info("Removed ID to identify remote host {}: {}", remoteSocket, endpointID); } } finally { lock.writeLock().unlock(); } }
private ClientCallback removeCallback(InetSocketAddress remoteSocket, Token token) { try { this.lock.readLock().lock(); if (!this.clientCallbacks.contains(remoteSocket, token)) { log.info("No callback found to be removed (remote endpoint: {}, token: {})", remoteSocket, token); return null; } } finally { this.lock.readLock().unlock(); } try { this.lock.writeLock().lock(); ClientCallback callback = clientCallbacks.remove(remoteSocket, token); if (callback == null) { log.info("No callback found to be removed (remote endpoint: {}, token: {})", remoteSocket, token); } else { log.info("Removed callback (remote endpoint: {}, token: {}). Remaining: {}", new Object[]{remoteSocket, token, this.clientCallbacks.size()}); triggerEvent(new TokenReleasedEvent(remoteSocket, token), true); } return callback; } finally { this.lock.writeLock().unlock(); } }
@Override public void handleEvent(RemoteServerSocketChangedEvent event) { InetSocketAddress previous = event.getPreviousRemoteSocket(); Token token = event.getToken(); try { this.lock.readLock().lock(); if (!this.block1Helpers.contains(previous, token)) { return; } } finally { this.lock.readLock().unlock(); } InetSocketAddress actual = event.getRemoteSocket(); try { this.lock.writeLock().lock(); ClientBlock1Helper helper = this.block1Helpers.remove(previous, token); this.block1Helpers.put(event.getRemoteSocket(), token, helper); LOG.debug("Successfully updated remote socket (previous: {}, actual: {})", previous, actual); } finally { this.lock.writeLock().unlock(); } }
@Override public void handleEvent(RemoteServerSocketChangedEvent event) { InetSocketAddress previous = event.getPreviousRemoteSocket(); Token token = event.getToken(); try { this.lock.readLock().lock(); if (!this.block2HelperTable.contains(previous, token)) { return; } } finally { this.lock.readLock().unlock(); } InetSocketAddress actual = event.getRemoteSocket(); try { this.lock.writeLock().lock(); ClientBlock2Helper helper = this.block2HelperTable.remove(previous, token); this.block2HelperTable.put(event.getRemoteSocket(), token, helper); LOG.debug("Successfully updated remote socket (previous: {}, actual: {})", previous, actual); } finally { this.lock.writeLock().unlock(); } }
MatchStatus checkCache(JSType subType, JSType superType) { if (this.matchCache == null) { this.matchCache = HashBasedTable.create(); } // check the cache if (this.matchCache.contains(subType, superType)) { return this.matchCache.get(subType, superType); } else { this.updateCache(subType, superType, MatchStatus.PROCESSING); return null; } } }
private ObservationParams stopObservation(InetSocketAddress remoteSocket, Token token) { try { this.lock.readLock().lock(); if (!this.observations1.contains(remoteSocket, token)) { return null; } } finally { this.lock.readLock().unlock(); } try { this.lock.writeLock().lock(); ObservationParams params = this.observations1.remove(remoteSocket, token); if (params == null) { return null; } this.observations2.remove(params.getWebresource(), remoteSocket); params.getWebresource().removeObserver(remoteSocket); LOG.info("Client \"{}\" is no longer observing \"{}\" (token was: \"{}\").", new Object[]{remoteSocket, params.getWebresource().getUriPath(), token}); return params; } finally { this.lock.writeLock().unlock(); } }
MatchStatus checkCache(JSType subType, JSType superType) { if (this.matchCache == null) { this.matchCache = HashBasedTable.create(); } // check the cache if (this.matchCache.contains(subType, superType)) { return this.matchCache.get(subType, superType); } else { this.updateCache(subType, superType, MatchStatus.PROCESSING); return null; } } }
if (!propertyDefs.contains(rawType, pname)) { propertyDefs.put(rawType, pname, new PropertyDef(getProp, null, null));