* 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 DefaultHttpResponseFactory} to be used * by HTTP connections for creating {@link org.apache.http.HttpResponse} * objects. *
* This method can be overridden in a super class in order to provide * a different implementation of the {@link HttpResponseFactory} interface. * * @return HTTP response factory. */ protected HttpResponseFactory createHttpResponseFactory() { return DefaultHttpResponseFactory.INSTANCE; } /** * Creates an instance of {@link DefaultNHttpClientConnection} 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 NHttpClientIOTarget} interface. * * @param session the underlying I/O session. * * @return newly created HTTP connection. */ @Override protected NHttpClientIOTarget createConnection(final IOSession session) { return new DefaultNHttpClientConnection( session, createHttpResponseFactory(), this.allocator, this.params); } @Override protected void onConnected(final NHttpClientIOTarget conn) { final int timeout = HttpConnectionParams.getSoTimeout(this.params); conn.setSocketTimeout(timeout); final Object attachment = conn.getContext().getAttribute(IOSession.ATTACHMENT_KEY); this.handler.connected(conn, attachment); } @Override protected void onClosed(final NHttpClientIOTarget conn) { this.handler.closed(conn); } @Override protected void onException(final NHttpClientIOTarget conn, final IOException ex) { this.handler.exception(conn, ex); } @Override protected void onInputReady(final NHttpClientIOTarget conn) { conn.consumeInput(this.handler); } @Override protected void onOutputReady(final NHttpClientIOTarget conn) { conn.produceOutput(this.handler); } @Override protected void onTimeout(final NHttpClientIOTarget conn) { this.handler.timeout(conn); } }