* This method can be overridden in a super class in order to provide * a different implementation of the {@link ByteBufferAllocator} interface. * * @return byte buffer allocator. */ protected ByteBufferAllocator createByteBufferAllocator() { return HeapByteBufferAllocator.INSTANCE; } /** * Creates an instance of {@link DefaultHttpRequestFactory} to be used * by HTTP connections for creating {@link org.apache.http.HttpRequest} * objects. *
* This method can be overridden in a super class in order to provide * a different implementation of the {@link HttpRequestFactory} interface. * * @return HTTP request factory. */ protected HttpRequestFactory createHttpRequestFactory() { return DefaultHttpRequestFactory.INSTANCE; } /** * Creates an instance of {@link DefaultNHttpServerConnection} based on the * given {@link IOSession}. *
* This method can be overridden in a super class in order to provide * a different implementation of the {@link NHttpServerIOTarget} interface. * * @param session the underlying I/O session. * * @return newly created HTTP connection. */ @Override protected NHttpServerIOTarget createConnection(final IOSession session) { return new DefaultNHttpServerConnection( session, createHttpRequestFactory(), this.allocator, this.params); } @Override protected void onConnected(final NHttpServerIOTarget conn) { final int timeout = HttpConnectionParams.getSoTimeout(this.params); conn.setSocketTimeout(timeout); this.handler.connected(conn); } @Override protected void onClosed(final NHttpServerIOTarget conn) { this.handler.closed(conn); } @Override protected void onException(final NHttpServerIOTarget conn, final IOException ex) { this.handler.exception(conn, ex); } @Override protected void onInputReady(final NHttpServerIOTarget conn) { conn.consumeInput(this.handler); } @Override protected void onOutputReady(final NHttpServerIOTarget conn) { conn.produceOutput(this.handler); } @Override protected void onTimeout(final NHttpServerIOTarget conn) { this.handler.timeout(conn); } }