@Override public void close(int timeout) { server.close(timeout); }
@Override public Channel getChannel(InetSocketAddress remoteAddress) { return server.getChannel(remoteAddress); }
@Override public ChannelHandler getChannelHandler() { return server.getChannelHandler(); }
@Override public URL getUrl() { return server.getUrl(); }
@Override public Collection<Channel> getChannels() { return server.getChannels(); }
@Override public boolean isClosed() { return server.isClosed(); } }
@Override public boolean isBound() { return server.isBound(); }
@Override public void reset(URL url) { server.reset(url); }
@Override public InetSocketAddress getLocalAddress() { return server.getLocalAddress(); }
private void startIdleCheckTask(URL url) { if (!server.canHandleIdle()) { AbstractTimerTask.ChannelProvider cp = () -> unmodifiableCollection(HeaderExchangeServer.this.getChannels()); int idleTimeout = UrlUtils.getIdleTimeout(url); long idleTimeoutTick = calculateLeastDuration(idleTimeout); CloseTimerTask closeTimerTask = new CloseTimerTask(cp, idleTimeoutTick, idleTimeout); this.closeTimerTask = closeTimerTask; // init task and start timer. IDLE_CHECK_TIMER.newTimeout(closeTimerTask, idleTimeoutTick, TimeUnit.MILLISECONDS); } } }
@Override public URL getUrl() { return server.getUrl(); }
@Override public Collection<Channel> getChannels() { return server.getChannels(); }
@Override public boolean isClosed() { return server.isClosed(); } }
@Override public boolean isBound() { return server.isBound(); }
@Override public void reset(URL url) { server.reset(url); }
@Override public InetSocketAddress getLocalAddress() { return server.getLocalAddress(); }
private void startIdleCheckTask(URL url) { if (!server.canHandleIdle()) { AbstractTimerTask.ChannelProvider cp = () -> unmodifiableCollection(HeaderExchangeServer.this.getChannels()); int idleTimeout = UrlUtils.getIdleTimeout(url); long idleTimeoutTick = calculateLeastDuration(idleTimeout); CloseTimerTask closeTimerTask = new CloseTimerTask(cp, idleTimeoutTick, idleTimeout); this.closeTimerTask = closeTimerTask; // init task and start timer. IDLE_CHECK_TIMER.newTimeout(closeTimerTask, idleTimeoutTick, TimeUnit.MILLISECONDS); } } }
@Override public void close() { server.close(); }
@Override public URL getUrl() { return server.getUrl(); }
@Override public Collection<ExchangeChannel> getExchangeChannels() { Collection<ExchangeChannel> exchangeChannels = new ArrayList<ExchangeChannel>(); Collection<Channel> channels = server.getChannels(); if (CollectionUtils.isNotEmpty(channels)) { for (Channel channel : channels) { exchangeChannels.add(HeaderExchangeChannel.getOrAddChannel(channel)); } } return exchangeChannels; }