protected IoSessionInitializer<?> getInitializer(ResourceAddress address) { Binding binding = bindings.getBinding(address); if (binding != null) { return binding.initializer(); } return null; }
@Override public Binding getBinding(ResourceAddress address) { return super.getBinding0(address); }
@Override protected Set<Entry<ResourceAddress, WsrBinding>> entrySet() { return super.entrySet(); }
private void removeWsrRtmpBinding(ResourceAddress wsrRtmpAddress) { Bindings.Binding binding = bindings.getBinding(wsrRtmpAddress); bindings.removeBinding(wsrRtmpAddress, binding); }
@Override public boolean removeBinding(ResourceAddress address, Binding oldBinding) { HttpBinding httpBinding = super.getBinding0(address); if ( httpBinding != null ) { URI location = address.getResource(); String path = location.getPath(); if (httpBinding.remove(path, oldBinding)) { unbindAdditionalAddressesIfNecessary(address, httpBinding); if (httpBinding.isEmpty()) { return super.removeBinding0(address, httpBinding); } } } return false; }
protected NextProtocolBinding addBinding1(NextProtocolBinding newNextBinding) { return super.addBinding0(newNextBinding); }
private <T extends IoFuture> void addWsrRtmpBinding(ResourceAddress wsrRtmpAddress, IoHandler handler, BridgeSessionInitializer<T> initializer) { Bindings.Binding newBinding = new Bindings.Binding(wsrRtmpAddress, handler, initializer); Bindings.Binding oldBinding = bindings.addBinding(newBinding); if (oldBinding != null) { throw new RuntimeException("Unable to bind address " + wsrRtmpAddress + " because it collides with an already bound address " + oldBinding.bindAddress()); } }
protected void removeBinding1(ResourceAddress address, NextProtocolBinding binding) { super.removeBinding0(address, binding); }
@Override public final UnbindFuture unbind(ResourceAddress address) { UnbindFuture future = null; boolean unbindAlternate; do { //System.out.println(getClass().getSimpleName()+"@"+hashCode()+" unbinding: "+address.getExternalURI()+" -- "+address.getOption(NEXT_PROTOCOL)); unbindAlternate = address.getOption(BIND_ALTERNATE); Binding binding = bindings.getBinding(address); bindings.removeBinding(address, binding); // Using address (instead of binding.bindAddress()) as two different addresses may have the same binding // due to alternates. For example: sse (with http transport) has alternate sse(with httpxe transport) // Say, they are A and its alternate B. A and B share the same binding as alternates comparator consider // A and B are equal. Unbinding A happens fine. While unbinding B, the binding.bindAddress() would be A // with alternate B and this would cause problems(as A is already used for unbinding). UnbindFuture newFuture = unbindInternal(address, binding.handler(), binding.initializer()); if (future != null) { future = DefaultUnbindFuture.combineFutures(future, newFuture); } else { future = newFuture; } address = address.getOption(ALTERNATE); } while (address != null && unbindAlternate); return future; }
@Override public Binding addBinding(Binding newBinding) { ResourceAddress bindAddress = newBinding.bindAddress(); WsrBinding wsrBinding = getBinding0(bindAddress); if (wsrBinding == null) { wsrBinding = new WsrBinding(newBinding.bindAddress(), newBinding.handler(), newBinding.initializer()); } return super.addBinding0(wsrBinding); }
Binding oldBinding = bindings.addBinding(newBinding);
@Override public IoHandler getHandler(ResourceAddress address) { Binding binding = bindings.getBinding(address); if (binding != null) { return binding.handler(); } System.out.println(String.format("ERROR in getHandler: bindings: %s\naddress: %s", bindings, address)); return null; }
@Override public Binding getBinding(ResourceAddress address) { return super.getBinding0(address); }
@Override protected Set<Entry<ResourceAddress, WsnBinding>> entrySet() { return super.entrySet(); }
@Override public Binding addBinding(Binding newBinding) { ResourceAddress bindAddress = newBinding.bindAddress(); WsnBinding wsnBinding = getBinding0(bindAddress); if (wsnBinding == null) { wsnBinding = new WsnBinding(newBinding.bindAddress(), newBinding.handler(), newBinding.initializer()); } return super.addBinding0(wsnBinding); }
URIUtils.uriToString(wseLocalAddressLocation), options); Binding binding = bindings.getBinding(candidate);
public NextProtocolBinding getProtocolBinding(ResourceAddress bindAddress) { return super.getBinding0(bindAddress); }
@Override protected Set<Entry<ResourceAddress, HttpBinding>> entrySet() { return super.entrySet(); }
wsLocalAddressLocation, options); Bindings.Binding binding = bindings.getBinding(candidate);
@Override public boolean removeBinding(ResourceAddress address, Binding binding) { WsrBinding wsrBinding = super.getBinding0(address); return wsrBinding != null && removeBinding0(address, wsrBinding); }