Class InternalH2AsyncExecRuntime
java.lang.Object
org.apache.hc.client5.http.impl.async.InternalH2AsyncExecRuntime
- All Implemented Interfaces:
AsyncExecRuntime
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final InternalH2ConnPoolprivate final org.slf4j.Loggerprivate final org.apache.hc.core5.http.nio.HandlerFactory<org.apache.hc.core5.http.nio.AsyncPushConsumer> private booleanprivate final AtomicReference<InternalH2AsyncExecRuntime.Endpoint> -
Constructor Summary
ConstructorsConstructorDescriptionInternalH2AsyncExecRuntime(org.slf4j.Logger log, InternalH2ConnPool connPool, org.apache.hc.core5.http.nio.HandlerFactory<org.apache.hc.core5.http.nio.AsyncPushConsumer> pushHandlerFactory) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.hc.core5.concurrent.CancellableacquireEndpoint(String id, HttpRoute route, Object object, HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Initiates operation to acquire a connection endpoint.private voidorg.apache.hc.core5.concurrent.CancellableconnectEndpoint(HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Initiates operation to connect the local endpoint to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).voidShuts down and discards the acquired endpoint.voidDisconnects the local endpoint from the initial hop in the connection route.(package private) InternalH2AsyncExecRuntime.Endpointorg.apache.hc.core5.concurrent.Cancellableexecute(String id, org.apache.hc.core5.http.nio.AsyncClientExchangeHandler exchangeHandler, HttpClientContext context) Initiates a message exchange using the given handler.fork()Forks this runtime for parallel execution.booleanDetermines of a connection endpoint has been acquired.booleanDetermines of there the endpoint is connected to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).voidMarks the connection as non re-usable.voidmarkConnectionReusable(Object newState, org.apache.hc.core5.util.TimeValue newValidDuration) Marks the connection as potentially re-usable for the given period of time and also marks it as stateful if the state representation is given.voidReleases the acquired endpoint potentially making it available for re-use.voidupgradeTls(HttpClientContext context) Upgrades transport security of the active connection by using the TLS security protocol.voidupgradeTls(HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Upgrades transport security of the active connection by using the TLS security protocol.booleanValidates the connection making sure it can be used to execute requests.
-
Field Details
-
log
private final org.slf4j.Logger log -
connPool
-
pushHandlerFactory
private final org.apache.hc.core5.http.nio.HandlerFactory<org.apache.hc.core5.http.nio.AsyncPushConsumer> pushHandlerFactory -
sessionRef
-
reusable
private volatile boolean reusable
-
-
Constructor Details
-
InternalH2AsyncExecRuntime
InternalH2AsyncExecRuntime(org.slf4j.Logger log, InternalH2ConnPool connPool, org.apache.hc.core5.http.nio.HandlerFactory<org.apache.hc.core5.http.nio.AsyncPushConsumer> pushHandlerFactory)
-
-
Method Details
-
isEndpointAcquired
public boolean isEndpointAcquired()Description copied from interface:AsyncExecRuntimeDetermines of a connection endpoint has been acquired.- Specified by:
isEndpointAcquiredin interfaceAsyncExecRuntime- Returns:
trueif an endpoint has been acquired,falseotherwise.
-
acquireEndpoint
public org.apache.hc.core5.concurrent.Cancellable acquireEndpoint(String id, HttpRoute route, Object object, HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Description copied from interface:AsyncExecRuntimeInitiates operation to acquire a connection endpoint. Endpoints can leased from a pool or unconnected new endpoint can be created.- Specified by:
acquireEndpointin interfaceAsyncExecRuntime- Parameters:
id- unique operation ID ornull.route- the connection route.object- the expected connection state. May benullif connection can be state-less or its state is irrelevant.context- the execution context.callback- the result callback.- Returns:
- handle that can be used to cancel the operation.
-
closeEndpoint
-
releaseEndpoint
public void releaseEndpoint()Description copied from interface:AsyncExecRuntimeReleases the acquired endpoint potentially making it available for re-use.- Specified by:
releaseEndpointin interfaceAsyncExecRuntime
-
discardEndpoint
public void discardEndpoint()Description copied from interface:AsyncExecRuntimeShuts down and discards the acquired endpoint.- Specified by:
discardEndpointin interfaceAsyncExecRuntime
-
validateConnection
public boolean validateConnection()Description copied from interface:AsyncExecRuntimeValidates the connection making sure it can be used to execute requests.- Specified by:
validateConnectionin interfaceAsyncExecRuntime- Returns:
trueif the connection is valid,false.
-
isEndpointConnected
public boolean isEndpointConnected()Description copied from interface:AsyncExecRuntimeDetermines of there the endpoint is connected to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).- Specified by:
isEndpointConnectedin interfaceAsyncExecRuntime- Returns:
trueif the endpoint is connected,falseotherwise.
-
ensureValid
InternalH2AsyncExecRuntime.Endpoint ensureValid() -
connectEndpoint
public org.apache.hc.core5.concurrent.Cancellable connectEndpoint(HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Description copied from interface:AsyncExecRuntimeInitiates operation to connect the local endpoint to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).- Specified by:
connectEndpointin interfaceAsyncExecRuntime- Parameters:
context- the execution context.callback- the result callback.- Returns:
- handle that can be used to cancel the operation.
-
disconnectEndpoint
public void disconnectEndpoint()Description copied from interface:AsyncExecRuntimeDisconnects the local endpoint from the initial hop in the connection route.- Specified by:
disconnectEndpointin interfaceAsyncExecRuntime
-
upgradeTls
Description copied from interface:AsyncExecRuntimeUpgrades transport security of the active connection by using the TLS security protocol.- Specified by:
upgradeTlsin interfaceAsyncExecRuntime- Parameters:
context- the execution context.
-
upgradeTls
public void upgradeTls(HttpClientContext context, org.apache.hc.core5.concurrent.FutureCallback<AsyncExecRuntime> callback) Description copied from interface:AsyncExecRuntimeUpgrades transport security of the active connection by using the TLS security protocol.- Specified by:
upgradeTlsin interfaceAsyncExecRuntime- Parameters:
context- the execution context.
-
execute
public org.apache.hc.core5.concurrent.Cancellable execute(String id, org.apache.hc.core5.http.nio.AsyncClientExchangeHandler exchangeHandler, HttpClientContext context) Description copied from interface:AsyncExecRuntimeInitiates a message exchange using the given handler.- Specified by:
executein interfaceAsyncExecRuntime- Parameters:
id- unique operation ID ornull.exchangeHandler- the client message handler.context- the execution context.
-
markConnectionReusable
public void markConnectionReusable(Object newState, org.apache.hc.core5.util.TimeValue newValidDuration) Description copied from interface:AsyncExecRuntimeMarks the connection as potentially re-usable for the given period of time and also marks it as stateful if the state representation is given.- Specified by:
markConnectionReusablein interfaceAsyncExecRuntime- Parameters:
newState- the connection state representation ornullif stateless.newValidDuration- the period of time this connection is valid for.
-
markConnectionNonReusable
public void markConnectionNonReusable()Description copied from interface:AsyncExecRuntimeMarks the connection as non re-usable.- Specified by:
markConnectionNonReusablein interfaceAsyncExecRuntime
-
fork
Description copied from interface:AsyncExecRuntimeForks this runtime for parallel execution.- Specified by:
forkin interfaceAsyncExecRuntime- Returns:
- another runtime with the same configuration.
-