} else { SimpleIoProcessorPool<NioSession> pool = new SimpleIoProcessorPool<NioSession>(NioProcessor.class, maxProcessorPoolSize);
/** * {@inheritDoc} */ @Override public final void flush(S session) { getProcessor(session).flush(session); }
} finally { if (!success) { dispose();
@SuppressWarnings("unchecked") private IoProcessor<T> getProcessor(T session) { IoProcessor<T> p = (IoProcessor<T>) session.getAttribute(PROCESSOR); if (p == null) { p = nextProcessor(); IoProcessor<T> oldp = (IoProcessor<T>) session .setAttributeIfAbsent(PROCESSOR, p); if (oldp != null) { p = oldp; } } return p; }
/** * {@inheritDoc} */ @Override public final void remove(S session) { getProcessor(session).remove(session); }
} finally { if (!success) { dispose();
/** * Constructor for {@link AbstractPollingIoAcceptor}. You need to provide a default * session configuration, a class of {@link IoProcessor} which will be instantiated in a * {@link SimpleIoProcessorPool} for better scaling in multiprocessor systems. The default * pool size will be used. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass a {@link Class} of {@link IoProcessor} for the associated {@link IoSession} * type. */ protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass), true, null); }
/** * {@inheritDoc} */ @Override public final void add(S session) { getProcessor(session).add(session); }
} finally { if (!success) { dispose();
/** * Constructor for {@link AbstractPollingIoAcceptor}. You need to provide a default * session configuration, a class of {@link IoProcessor} which will be instantiated in a * {@link SimpleIoProcessorPool} for using multiple thread for better scaling in multiprocessor * systems. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass a {@link Class} of {@link IoProcessor} for the associated {@link IoSession} * type. * @param processorCount the amount of processor to instantiate for the pool */ protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass, int processorCount) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass, processorCount), true, null); }
/** * {@inheritDoc} */ @Override public final void remove(S session) { getProcessor(session).remove(session); }
/** * Constructor for {@link AbstractPollingIoConnector}. You need to provide a * default session configuration, a class of {@link IoProcessor} which will * be instantiated in a {@link SimpleIoProcessorPool} for better scaling in * multiprocessor systems. The default pool size will be used. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass * a {@link Class} of {@link IoProcessor} for the associated * {@link IoSession} type. */ protected AbstractPollingIoConnector(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass), true); }
/** * {@inheritDoc} */ @Override public final void write(S session, WriteRequest writeRequest) { getProcessor(session).write(session, writeRequest); }
/** * Constructor for {@link AbstractPollingIoConnector}. You need to provide a * default session configuration, a class of {@link IoProcessor} which will * be instantiated in a {@link SimpleIoProcessorPool} for better scaling in * multiprocessor systems. The default pool size will be used. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass * a {@link Class} of {@link IoProcessor} for the associated * {@link IoSession} type. */ protected AbstractPollingIoConnector(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass), true); }
/** * {@inheritDoc} */ @Override public final void updateTrafficControl(S session) { getProcessor(session).updateTrafficControl(session); }
/** * Constructor for {@link AbstractPollingIoAcceptor}. You need to provide a default * session configuration, a class of {@link IoProcessor} which will be instantiated in a * {@link SimpleIoProcessorPool} for better scaling in multiprocessor systems. The default * pool size will be used. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass a {@link Class} of {@link IoProcessor} for the associated {@link IoSession} * type. */ protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass), true, null); }
/** * {@inheritDoc} */ @Override public final void updateTrafficControl(S session) { getProcessor(session).updateTrafficControl(session); }
/** * Constructor for {@link AbstractPollingIoAcceptor}. You need to provide a default * session configuration, a class of {@link IoProcessor} which will be instantiated in a * {@link SimpleIoProcessorPool} for using multiple thread for better scaling in multiprocessor * systems. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass a {@link Class} of {@link IoProcessor} for the associated {@link IoSession} * type. * @param processorCount the amount of processor to instantiate for the pool */ protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig, Class<? extends IoProcessor<S>> processorClass, int processorCount) { this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass, processorCount), true, null); }
/** * {@inheritDoc} */ @Override public final void add(S session) { getProcessor(session).add(session); }
/** * Constructor for {@link AbstractPollingIoConnector}. You need to provide a default * session configuration, a class of {@link IoProcessor} which will be instantiated in a * {@link SimpleIoProcessorPool} for using multiple thread for better scaling in multiprocessor * systems. * * @see SimpleIoProcessorPool * * @param sessionConfig * the default configuration for the managed {@link IoSession} * @param processorClass a {@link Class} of {@link IoProcessor} for the associated {@link IoSession} * type. * @param processorCount the amount of processor to instantiate for the pool */ protected AbstractPollingIoConnector(IoSessionConfig sessionConfig, Class<? extends IoProcessor<T>> processorClass, int processorCount) { this(sessionConfig, null, new SimpleIoProcessorPool<>(processorClass, processorCount), true); }