@Override public void remove(MulticastSession session) { getListeners().fireSessionDestroyed(session); }
/** * {@inheritDoc} */ @Override public final void addListener(IoServiceListener listener) { listeners.add(listener); }
/** * {@inheritDoc} */ @Override public final long getActivationTime() { return listeners.getActivationTime(); }
NamedPipeSession newSession(NamedPipeAddress localAddress, NamedPipeSession remoteSession) throws Exception { IoHandler handler = bindings.get(localAddress); if (handler == null) { throw new IOException(String.format("Named pipe \"%s\" not bound", localAddress.getPipeName())); } NamedPipeSession session = new NamedPipeSession(this, processor, localAddress, handler); IoFilterChain chain = session.getFilterChain(); IoFilterChainBuilder builder = getFilterChainBuilder(); builder.buildFilterChain(chain); initSession(session, null, null); session.setRemoteSession(remoteSession); getListeners().fireSessionCreated(session); return session; } }
listeners = new IoServiceListenerSupport(this); listeners.add(serviceActivationListener);
@Override public void operationComplete(BindFuture future) { if (future.isBound()) { boolean activate = false; synchronized (bindLock) { if (boundAddresses.isEmpty()) { activate = true; } boundAddresses.add(localAddress); if (activate) { getListeners().fireServiceActivated(); } } } } });
@Override public void operationComplete(UnbindFuture future) { if (future.isUnbound()) { boolean deactivate = false; synchronized (bindLock) { if (boundAddresses.isEmpty()) { return; } boundAddresses.remove(localAddress); if (boundAddresses.isEmpty()) { deactivate = true; } if (deactivate) { getListeners().fireServiceDeactivated(); } } } } });
/** * {@inheritDoc} */ @Override public final Map<Long, IoSession> getManagedSessions() { return listeners.getManagedSessions(); }
/** * {@inheritDoc} */ @Override public final boolean isActive() { return listeners.isActive(); }
/** * {@inheritDoc} */ @Override public final int getManagedSessionCount() { return listeners.getManagedSessionCount(); }
private IoSession newSessionWithoutLock(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { DatagramChannel handle = boundHandles.get(localAddress); if (handle == null) { throw new IllegalArgumentException("Unknown local address: " + localAddress); } IoSession session; synchronized (sessionRecycler) { session = sessionRecycler.recycle(remoteAddress); if (session != null) { return session; } // If a new session needs to be created. NioSession newSession = newSession(this, handle, remoteAddress); getSessionRecycler().put(newSession); session = newSession; } initSession(session, null, null); try { this.getFilterChainBuilder().buildFilterChain(session.getFilterChain()); getListeners().fireSessionCreated(session); } catch (Exception e) { ExceptionMonitor.getInstance().exceptionCaught(e); } return session; }
listeners = new IoServiceListenerSupport(this); listeners.add(serviceActivationListener);
getListeners().fireServiceActivated();
getListeners().fireServiceDeactivated();
/** * {@inheritDoc} */ @Override public final Map<Long, IoSession> getManagedSessions() { return listeners.getManagedSessions(); }
/** * {@inheritDoc} */ @Override public final boolean isActive() { return listeners.isActive(); }
/** * {@inheritDoc} */ @Override public final int getManagedSessionCount() { return listeners.getManagedSessionCount(); }
private IoSession newSessionWithoutLock(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception { DatagramChannel handle = boundHandles.get(localAddress); if (handle == null) { throw new IllegalArgumentException("Unknown local address: " + localAddress); } IoSession session; synchronized (sessionRecycler) { session = sessionRecycler.recycle(remoteAddress); if (session != null) { return session; } // If a new session needs to be created. NioSession newSession = newSession(this, handle, remoteAddress); getSessionRecycler().put(newSession); session = newSession; } initSession(session, null, null); try { this.getFilterChainBuilder().buildFilterChain(session.getFilterChain()); getListeners().fireSessionCreated(session); } catch (Exception e) { ExceptionMonitor.getInstance().exceptionCaught(e); } return session; }
protected void doFireSessionDestroyed(IoSessionAdapterEx session) { final IoConnectorEx connector = this.connector.getConnectorReference().get(); if (connector != null) { connector.getListeners().fireSessionDestroyed(session); } }
listeners = new IoServiceListenerSupport(this); listeners.add(serviceActivationListener);