@Internal public interface HttpAsyncCacheInvalidator {
@Internal public interface HttpCacheInvalidator {
@Internal public class DefaultCacheInvalidator extends CacheInvalidatorBase implements HttpCacheInvalidator {
@Internal public class DefaultAsyncCacheInvalidator extends CacheInvalidatorBase implements HttpAsyncCacheInvalidator {
/** * Represents application protocol layer. * * @since 5.0 */ @Internal public interface ProtocolLayer { IOEventHandler getHandler(); void upgrade(IOEventHandler handler); }
/** * Request exec chain customization and extension. * <p> * For internal use. */ @Internal protected void customizeExecChain(final NamedElementChain<ExecChainHandler> execChainDefinition) { }
/** * Request exec chain customization and extension. * <p> * For internal use. */ @Internal protected void customizeExecChain(final NamedElementChain<AsyncExecChainHandler> execChainDefinition) { }
/** * {@link IOEventHandler} that also exposes {@link HttpConnection} properties. * * @since 5.0 */ @Internal public interface HttpConnectionEventHandler extends IOEventHandler, HttpConnection { }
/** * Use {@link AsyncServerBootstrap} to create instances of this class. */ @Internal public HttpAsyncServer( final IOEventHandlerFactory eventHandlerFactory, final IOReactorConfig ioReactorConfig, final Decorator<IOSession> ioSessionDecorator, final IOSessionListener sessionListener) { super(eventHandlerFactory, ioReactorConfig, ioSessionDecorator, sessionListener, ShutdownCommand.GRACEFUL_NORMAL_CALLBACK); }
/** * Abstract executable command that may need to do some cleaning up * in case of an failure and also optionally may want to cancel * the associated HTTP message exchange through {@link CancellableDependency}. * * @since 5.0 */ @Internal public abstract class ExecutableCommand implements Command { public abstract CancellableDependency getCancellableDependency(); public abstract void failed(Exception ex); }
/** * Represents application protocol layer. * * @since 5.0 */ @Internal public interface ProtocolLayer { IOEventHandler getHandler(); void upgrade(IOEventHandler handler); }
/** * Request exec chain customization and extension. * <p> * For internal use. */ @Internal protected void customizeExecChain(final NamedElementChain<AsyncExecChainHandler> execChainDefinition) { }
/** * Use {@link AsyncServerBootstrap} to create instances of this class. */ @Internal public HttpAsyncServer( final IOEventHandlerFactory eventHandlerFactory, final IOReactorConfig ioReactorConfig, final Decorator<IOSession> ioSessionDecorator, final IOSessionListener sessionListener) { super(eventHandlerFactory, ioReactorConfig, ioSessionDecorator, sessionListener, ShutdownCommand.GRACEFUL_NORMAL_CALLBACK); }
/** * Abstract executable command that may need to do some cleaning up * in case of an failure and also optionally may want to cancel * the associated HTTP message exchange through {@link CancellableDependency}. * * @since 5.0 */ @Internal public abstract class ExecutableCommand implements Command { public abstract CancellableDependency getCancellableDependency(); public abstract void failed(Exception ex); }
/** * {@link IOEventHandler} that also exposes {@link HttpConnection} properties. * * @since 5.0 */ @Internal public interface HttpConnectionEventHandler extends IOEventHandler, HttpConnection { }
@Internal public String getNonce() { return lastNonce; }
@Internal public long getNounceCount() { return nounceCount; }
@Internal public String getCnonce() { return cnonce; }
/** * Use {@link H2RequesterBootstrap} to create instances of this class. */ @Internal public Http2AsyncRequester( final HttpVersionPolicy versionPolicy, final IOReactorConfig ioReactorConfig, final IOEventHandlerFactory eventHandlerFactory, final Decorator<IOSession> ioSessionDecorator, final IOSessionListener sessionListener, final ManagedConnPool<HttpHost, IOSession> connPool) { super(ioReactorConfig, eventHandlerFactory, ioSessionDecorator, sessionListener, connPool); this.versionPolicy = versionPolicy != null ? versionPolicy : HttpVersionPolicy.NEGOTIATE; }
/** * Request execution support methods. * * @since 5.0 */ @Internal public final class ExecSupport { private static final AtomicLong COUNT = new AtomicLong(0); public static long getNextExecNumber() { return COUNT.incrementAndGet(); } public static String getNextExchangeId() { return String.format("ex-%08X", COUNT.incrementAndGet()); } }