private void purgeCache(String id) { final Stream stream = idToStream.remove(id); LOG.debug("Purging stream id/title cache for id {}, stream {}", id, stream); if (stream != null) { nameToStream.remove(stream.getTitle(), stream); } }
@ReceiveEvent public void delayedComponentDeactivated(BeforeDeactivateComponent event, EntityRef entity, DelayedActionComponent delayedActionComponent) { delayedOperationsSortedByTime.remove(delayedActionComponent.getLowestWakeUp(), entity); }
@ReceiveEvent public void periodicComponentDeactivated(BeforeDeactivateComponent event, EntityRef entity, PeriodicActionComponent periodicActionComponent) { delayedOperationsSortedByTime.remove(periodicActionComponent.getLowestWakeUp(), entity); }
@Override public void cancelPeriodicAction(EntityRef entity, String actionId) { PeriodicActionComponent periodicActionComponent = entity.getComponent(PeriodicActionComponent.class); long oldWakeUp = periodicActionComponent.getLowestWakeUp(); periodicActionComponent.removeScheduledActionId(actionId); long newWakeUp = periodicActionComponent.getLowestWakeUp(); if (!periodicActionComponent.isEmpty() && oldWakeUp < newWakeUp) { periodicOperationsSortedByTime.remove(oldWakeUp, entity); periodicOperationsSortedByTime.put(newWakeUp, entity); } else if (periodicActionComponent.isEmpty()) { periodicOperationsSortedByTime.remove(oldWakeUp, entity); } saveOrRemoveComponent(entity, periodicActionComponent); }
@Override public void cancelDelayedAction(EntityRef entity, String actionId) { DelayedActionComponent delayedComponent = entity.getComponent(DelayedActionComponent.class); long oldWakeUp = delayedComponent.getLowestWakeUp(); delayedComponent.removeActionId(actionId); long newWakeUp = delayedComponent.getLowestWakeUp(); if (!delayedComponent.isEmpty() && oldWakeUp < newWakeUp) { delayedOperationsSortedByTime.remove(oldWakeUp, entity); delayedOperationsSortedByTime.put(newWakeUp, entity); } else if (delayedComponent.isEmpty()) { delayedOperationsSortedByTime.remove(oldWakeUp, entity); } saveOrRemoveComponent(entity, delayedComponent); }
@Override public void addDelayedAction(EntityRef entity, String actionId, long delay) { long scheduleTime = time.getGameTimeInMs() + delay; DelayedActionComponent delayedActionComponent = entity.getComponent(DelayedActionComponent.class); if (delayedActionComponent != null) { final long oldWakeUp = delayedActionComponent.getLowestWakeUp(); delayedActionComponent.addActionId(actionId, scheduleTime); entity.saveComponent(delayedActionComponent); final long newWakeUp = delayedActionComponent.getLowestWakeUp(); if (oldWakeUp < newWakeUp) { delayedOperationsSortedByTime.remove(oldWakeUp, entity); delayedOperationsSortedByTime.put(newWakeUp, entity); } else { // Even if the oldWakeUp time is greater than or equal to the new one, the next action should still be added // to the delayedOperationsSortedByTime mapping. delayedOperationsSortedByTime.put(scheduleTime, entity); } } else { delayedActionComponent = new DelayedActionComponent(); delayedActionComponent.addActionId(actionId, scheduleTime); entity.addComponent(delayedActionComponent); } }
@Override public void addPeriodicAction(EntityRef entity, String actionId, long initialDelay, long period) { long scheduleTime = time.getGameTimeInMs() + initialDelay; PeriodicActionComponent periodicActionComponent = entity.getComponent(PeriodicActionComponent.class); if (periodicActionComponent != null) { final long oldWakeUp = periodicActionComponent.getLowestWakeUp(); periodicActionComponent.addScheduledActionId(actionId, scheduleTime, period); entity.saveComponent(periodicActionComponent); final long newWakeUp = periodicActionComponent.getLowestWakeUp(); if (oldWakeUp < newWakeUp) { periodicOperationsSortedByTime.remove(oldWakeUp, entity); periodicOperationsSortedByTime.put(newWakeUp, entity); } else { // Even if the oldWakeUp time is greater than or equal to the new one, the next action should still be added // to the delayedOperationsSortedByTime mapping. periodicOperationsSortedByTime.put(scheduleTime, entity); } } else { periodicActionComponent = new PeriodicActionComponent(); periodicActionComponent.addScheduledActionId(actionId, scheduleTime, period); entity.addComponent(periodicActionComponent); } }
@Override @SuppressWarnings("unchecked") public void remove(Window window) { super.remove(window); Window.SessionWindow<K> sessionWindow = (Window.SessionWindow<K>)window; keyToWindows.remove(sessionWindow.getKey(), sessionWindow); }
/** * Removes an address from the node ID map. * * @param address The address to remove from the node ID map. * @return The nodeid that was in the map. */ @Override public boolean removeNodeId(final String location, final InetAddress address, final int nodeId) { if (address == null) { LOG.warn("removeNodeId: null IP address"); return false; } LOG.debug("removeNodeId: removing IP address from cache: {}:{}", location, str(address)); m_lock.writeLock().lock(); try { final Key key = new Key(location, address); return m_managedAddresses.remove(key, new Value(nodeId, PrimaryType.PRIMARY)) || m_managedAddresses.remove(key, new Value(nodeId, PrimaryType.SECONDARY)) || m_managedAddresses.remove(key, new Value(nodeId, PrimaryType.NOT_ELIGIBLE)); } finally { m_lock.writeLock().unlock(); } }
@Override public void migrateWindow(Window.SessionWindow<K> fromWindow, Window.SessionWindow<K> toWindow) { if (!containsWindow(fromWindow)) { throw new NoSuchElementException(); } map.put(toWindow, map.remove(fromWindow)); keyToWindows.remove(fromWindow.getKey(), fromWindow); keyToWindows.put(toWindow.getKey(), toWindow); }
@Override public void removeFilterModule(ServletFilterModuleDescriptor descriptor) { if (descriptor instanceof RestServletFilterModuleDescriptor) { final RestServletFilterModuleDescriptor restServletFilterModuleDescriptor = (RestServletFilterModuleDescriptor) descriptor; // check if it was the latest, before removing from the MultiMap RestServletFilterModuleDescriptor latest = getRestServletFilterModuleDescriptorForLatest(restServletFilterModuleDescriptor.getBasePath()); filterModuleDescriptors.remove(restServletFilterModuleDescriptor.getBasePath(), restServletFilterModuleDescriptor); if (latest != null && latest.getCompleteKey().equals(descriptor.getCompleteKey())) { // latest has changed as we have removed an item from the multimap latest = getRestServletFilterModuleDescriptorForLatest(restServletFilterModuleDescriptor.getBasePath()); if (latest != null) { filterPathMapper.put(latest.getCompleteKey(), getPathPattern(latest.getBasePath())); } } } // remaining mapping of the descriptor will be removed by this call. delegateModuleManager.removeFilterModule(descriptor); }