Class InternalExecRuntime
java.lang.Object
org.apache.hc.client5.http.impl.classic.InternalExecRuntime
- All Implemented Interfaces:
ExecRuntime,org.apache.hc.core5.concurrent.Cancellable
class InternalExecRuntime
extends Object
implements ExecRuntime, org.apache.hc.core5.concurrent.Cancellable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.apache.hc.core5.concurrent.CancellableDependencyprivate final AtomicReference<ConnectionEndpoint> private final org.slf4j.Loggerprivate final HttpClientConnectionManagerprivate final org.apache.hc.core5.http.impl.io.HttpRequestExecutorprivate booleanprivate Objectprivate org.apache.hc.core5.util.TimeValue -
Constructor Summary
ConstructorsConstructorDescriptionInternalExecRuntime(org.slf4j.Logger log, HttpClientConnectionManager manager, org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExecutor, org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency) -
Method Summary
Modifier and TypeMethodDescriptionvoidacquireEndpoint(String id, HttpRoute route, Object object, HttpClientContext context) Acquires a connection endpoint.booleancancel()private voidconnectEndpoint(ConnectionEndpoint endpoint, HttpClientContext context) voidconnectEndpoint(HttpClientContext context) 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.private voiddiscardEndpoint(ConnectionEndpoint endpoint) voidDisconnects the local endpoint from the initial hop in the connection route.(package private) ConnectionEndpointorg.apache.hc.core5.http.ClassicHttpResponseexecute(String id, org.apache.hc.core5.http.ClassicHttpRequest request, HttpClientContext context) Executes HTTP request using the given context.fork(org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency) Forks this runtime for parallel execution.booleanDetermines of the connection is considered re-usable.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).booleanDetermines of the request execution has been aborted.voidMarks the connection as non re-usable.voidmarkConnectionReusable(Object state, org.apache.hc.core5.util.TimeValue validDuration) 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.
-
Field Details
-
log
private final org.slf4j.Logger log -
manager
-
requestExecutor
private final org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExecutor -
cancellableDependency
private final org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency -
endpointRef
-
reusable
private volatile boolean reusable -
state
-
validDuration
private volatile org.apache.hc.core5.util.TimeValue validDuration
-
-
Constructor Details
-
InternalExecRuntime
InternalExecRuntime(org.slf4j.Logger log, HttpClientConnectionManager manager, org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExecutor, org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency)
-
-
Method Details
-
isExecutionAborted
public boolean isExecutionAborted()Description copied from interface:ExecRuntimeDetermines of the request execution has been aborted.- Specified by:
isExecutionAbortedin interfaceExecRuntime- Returns:
trueif the request execution has been acquired,falseotherwise.
-
isEndpointAcquired
public boolean isEndpointAcquired()Description copied from interface:ExecRuntimeDetermines of a connection endpoint has been acquired.- Specified by:
isEndpointAcquiredin interfaceExecRuntime- Returns:
trueif an endpoint has been acquired,falseotherwise.
-
acquireEndpoint
public void acquireEndpoint(String id, HttpRoute route, Object object, HttpClientContext context) throws IOException Description copied from interface:ExecRuntimeAcquires a connection endpoint. Endpoints can leased from a pool or unconnected new endpoint can be created.- Specified by:
acquireEndpointin interfaceExecRuntime- 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.- Throws:
IOException
-
ensureValid
ConnectionEndpoint ensureValid() -
isEndpointConnected
public boolean isEndpointConnected()Description copied from interface:ExecRuntimeDetermines 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 interfaceExecRuntime- Returns:
trueif the endpoint is connected,falseotherwise.
-
connectEndpoint
private void connectEndpoint(ConnectionEndpoint endpoint, HttpClientContext context) throws IOException - Throws:
IOException
-
connectEndpoint
Description copied from interface:ExecRuntimeConnect 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 interfaceExecRuntime- Parameters:
context- the execution context.- Throws:
IOException
-
disconnectEndpoint
Description copied from interface:ExecRuntimeDisconnects the local endpoint from the initial hop in the connection route.- Specified by:
disconnectEndpointin interfaceExecRuntime- Throws:
IOException
-
upgradeTls
Description copied from interface:ExecRuntimeUpgrades transport security of the active connection by using the TLS security protocol.- Specified by:
upgradeTlsin interfaceExecRuntime- Parameters:
context- the execution context.- Throws:
IOException
-
execute
public org.apache.hc.core5.http.ClassicHttpResponse execute(String id, org.apache.hc.core5.http.ClassicHttpRequest request, HttpClientContext context) throws IOException, org.apache.hc.core5.http.HttpException Description copied from interface:ExecRuntimeExecutes HTTP request using the given context.- Specified by:
executein interfaceExecRuntime- Parameters:
id- unique operation ID ornull.request- the request message.context- the execution context.- Throws:
IOExceptionorg.apache.hc.core5.http.HttpException
-
isConnectionReusable
public boolean isConnectionReusable()Description copied from interface:ExecRuntimeDetermines of the connection is considered re-usable.- Specified by:
isConnectionReusablein interfaceExecRuntime- Returns:
trueif the connection is re-usable,falseotherwise.
-
markConnectionReusable
Description copied from interface:ExecRuntimeMarks 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 interfaceExecRuntime- Parameters:
state- the connection state representation ornullif stateless.validDuration- the period of time this connection is valid for.
-
markConnectionNonReusable
public void markConnectionNonReusable()Description copied from interface:ExecRuntimeMarks the connection as non re-usable.- Specified by:
markConnectionNonReusablein interfaceExecRuntime
-
discardEndpoint
-
releaseEndpoint
public void releaseEndpoint()Description copied from interface:ExecRuntimeReleases the acquired endpoint potentially making it available for re-use.- Specified by:
releaseEndpointin interfaceExecRuntime
-
discardEndpoint
public void discardEndpoint()Description copied from interface:ExecRuntimeShuts down and discards the acquired endpoint.- Specified by:
discardEndpointin interfaceExecRuntime
-
cancel
public boolean cancel()- Specified by:
cancelin interfaceorg.apache.hc.core5.concurrent.Cancellable
-
fork
Description copied from interface:ExecRuntimeForks this runtime for parallel execution.- Specified by:
forkin interfaceExecRuntime- Returns:
- another runtime with the same configuration.
-