Top Inners Fields Constructors Methods
org.apache.hc.core5.http.impl.nio

pack-priv abstract Class AbstractHttp1StreamDuplexer<IncomingMessage extends org.apache.hc.core5.http.HttpMessage, OutgoingMessage extends org.apache.hc.core5.http.HttpMessage>

extends Object
implements Identifiable, HttpConnection
Class Inheritance
All Implemented Interfaces
org.apache.hc.core5.http.HttpConnection, org.apache.hc.core5.http.SocketModalCloseable, org.apache.hc.core5.io.ModalCloseable, java.io.Closeable, java.lang.AutoCloseable, org.apache.hc.core5.util.Identifiable
Known Direct Subclasses
org.apache.hc.core5.http.impl.nio.ClientHttp1StreamDuplexer, org.apache.hc.core5.http.impl.nio.ServerHttp1StreamDuplexer
Imports
java.io.IOException, java.net.SocketAddress, java.nio.ByteBuffer, java.nio.channels.ClosedChannelException, .ReadableByteChannel, .SelectionKey, .WritableByteChannel, java.util.List, java.util.concurrent.atomic.AtomicInteger, javax.net.ssl.SSLSession, org.apache.hc.core5.http.ConnectionClosedException, .ContentLengthStrategy, .EndpointDetails, .EntityDetails, .Header, .HttpConnection, .HttpException, .HttpMessage, .Message, .ProtocolVersion, org.apache.hc.core5.http.config.CharCodingConfig, .Http1Config, org.apache.hc.core5.http.impl.BasicEndpointDetails, .BasicHttpConnectionMetrics, .BasicHttpTransportMetrics, .CharCodingSupport, .DefaultContentLengthStrategy, .IncomingEntityDetails, org.apache.hc.core5.http.nio.CapacityChannel, .ContentDecoder, .ContentEncoder, .NHttpMessageParser, .NHttpMessageWriter, .SessionInputBuffer, .SessionOutputBuffer, org.apache.hc.core5.http.nio.command.CommandSupport, .RequestExecutionCommand, .ShutdownCommand, org.apache.hc.core5.io.CloseMode, .SocketTimeoutExceptionFactory, org.apache.hc.core5.reactor.Command, .EventMask, .IOSession, .ProtocolIOSession, org.apache.hc.core5.reactor.ssl.TlsDetails, org.apache.hc.core5.util.Args, .Identifiable, .Timeout

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
private static enum
pack-priv static enum

Field Summary

Modifier and TypeField and Description
private volatile AbstractHttp1StreamDuplexer.CapacityWindow
private final BasicHttpConnectionMetrics
private volatile AbstractHttp1StreamDuplexer.ConnectionState
private final ByteBuffer
private volatile EndpointDetails
private final Http1Config
private final SessionInputBufferImpl
private final ContentLengthStrategy
private volatile Message<IncomingMessage, ContentDecoder>
private final NHttpMessageParser<IncomingMessage>
private final BasicHttpTransportMetrics
private final ProtocolIOSession
private final SessionOutputBufferImpl
private final ContentLengthStrategy
private volatile Message<OutgoingMessage, ContentEncoder>
private final NHttpMessageWriter<OutgoingMessage>
private final AtomicInteger
private final BasicHttpTransportMetrics
private volatile ProtocolVersion

Constructor Summary

AccessConstructor and Description
pack-priv
AbstractHttp1StreamDuplexer(final ProtocolIOSession ioSession, final Http1Config http1Config, final CharCodingConfig charCodingConfig, final NHttpMessageParser<IncomingMessage> incomingMessageParser, final NHttpMessageWriter<OutgoingMessage> outgoingMessageWriter, final ContentLengthStrategy incomingContentStrategy, final ContentLengthStrategy outgoingContentStrategy)

Method Summary

Modifier and TypeMethod and Description
pack-priv void
public void
close()

Implements org.apache.hc.core5.http.HttpConnection.close.

Closes this connection gracefully.
public void
close(final CloseMode
How to close the receiver.
closeMode
)

Implements org.apache.hc.core5.io.ModalCloseable.close.

Closes this process or endpoint and releases any system resources associated with it.
pack-priv void
commitMessageHead(final OutgoingMessage messageHead, final boolean endStream, final FlushMode flushMode)

pack-priv abstract void
pack-priv abstract void
consumeHeader(IncomingMessage messageHead, EntityDetails entityDetails)

pack-priv abstract ContentDecoder
pack-priv abstract ContentEncoder
pack-priv abstract void
dataEnd(List<? extends Header> trailers)

pack-priv abstract void
pack-priv AbstractHttp1StreamDuplexer.MessageDelineation
endOutputStream(final List<? extends Header> trailers)

pack-priv abstract void
execute(RequestExecutionCommand executionCommand)

public EndpointDetails
getEndpointDetails()

Implements org.apache.hc.core5.http.HttpConnection.getEndpointDetails.

Returns this connection's endpoint details.
public String
public SocketAddress
getLocalAddress()

Implements org.apache.hc.core5.http.HttpConnection.getLocalAddress.

Returns this connection's local address or null if it is not bound yet.
public ProtocolVersion
getProtocolVersion()

Implements org.apache.hc.core5.http.HttpConnection.getProtocolVersion.

Returns this connection's protocol version or null if unknown.
public SocketAddress
getRemoteAddress()

Implements org.apache.hc.core5.http.HttpConnection.getRemoteAddress.

Returns this connection's remote address or null if it is not connected yet or unconnected.
pack-priv Timeout
public Timeout
public SSLSession
getSSLSession()

Implements org.apache.hc.core5.http.HttpConnection.getSSLSession.

Returns this connection's SSL session or null if TLS has not been activated.
pack-priv abstract boolean
handleIncomingMessage(IncomingMessage incomingMessage)

pack-priv abstract boolean
handleOutgoingMessage(OutgoingMessage outgoingMessage)

pack-priv abstract boolean
pack-priv abstract void
pack-priv abstract boolean
pack-priv boolean
public boolean
isOpen()

Implements org.apache.hc.core5.http.HttpConnection.isOpen.

Checks if this connection is open.
pack-priv boolean
pack-priv abstract boolean
pack-priv boolean
public final void
public final void
public final void
public final void
onInput(final ByteBuffer src)

public final void
public final void
onTimeout(final Timeout timeout)

pack-priv abstract void
pack-priv abstract boolean
pack-priv IncomingMessage
parseMessageHead(final boolean endOfStream)

private void
pack-priv abstract void
pack-priv void
pack-priv void
pack-priv void
requestShutdown(final CloseMode closeMode)

pack-priv void
setSessionTimeout(final Timeout timeout)

public void
setSocketTimeout(final Timeout
timeout value
timeout
)

Implements org.apache.hc.core5.http.SocketModalCloseable.setSocketTimeout.

Sets the socket timeout value.
pack-priv void
shutdownSession(final CloseMode closeMode)

pack-priv void
pack-priv int
pack-priv void
pack-priv void
pack-priv abstract void
terminate(final Exception exception)

pack-priv abstract void
pack-priv abstract void
updateInputMetrics(IncomingMessage incomingMessage, BasicHttpConnectionMetrics connMetrics)

pack-priv abstract void
updateOutputMetrics(OutgoingMessage outgoingMessage, BasicHttpConnectionMetrics connMetrics)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

capacityWindowback to summary
private volatile AbstractHttp1StreamDuplexer.CapacityWindow capacityWindow
connMetricsback to summary
private final BasicHttpConnectionMetrics connMetrics
connStateback to summary
private volatile AbstractHttp1StreamDuplexer.ConnectionState connState
contentBufferback to summary
private final ByteBuffer contentBuffer
endpointDetailsback to summary
private volatile EndpointDetails endpointDetails
http1Configback to summary
private final Http1Config http1Config
inbufback to summary
private final SessionInputBufferImpl inbuf
incomingContentStrategyback to summary
private final ContentLengthStrategy incomingContentStrategy
incomingMessageback to summary
private volatile Message<IncomingMessage, ContentDecoder> incomingMessage
incomingMessageParserback to summary
private final NHttpMessageParser<IncomingMessage> incomingMessageParser
inTransportMetricsback to summary
private final BasicHttpTransportMetrics inTransportMetrics
ioSessionback to summary
private final ProtocolIOSession ioSession
outbufback to summary
private final SessionOutputBufferImpl outbuf
outgoingContentStrategyback to summary
private final ContentLengthStrategy outgoingContentStrategy
outgoingMessageback to summary
private volatile Message<OutgoingMessage, ContentEncoder> outgoingMessage
outgoingMessageWriterback to summary
private final NHttpMessageWriter<OutgoingMessage> outgoingMessageWriter
outputRequestsback to summary
private final AtomicInteger outputRequests
outTransportMetricsback to summary
private final BasicHttpTransportMetrics outTransportMetrics
versionback to summary
private volatile ProtocolVersion version

Constructor Detail

AbstractHttp1StreamDuplexerback to summary
pack-priv AbstractHttp1StreamDuplexer(final ProtocolIOSession ioSession, final Http1Config http1Config, final CharCodingConfig charCodingConfig, final NHttpMessageParser<IncomingMessage> incomingMessageParser, final NHttpMessageWriter<OutgoingMessage> outgoingMessageWriter, final ContentLengthStrategy incomingContentStrategy, final ContentLengthStrategy outgoingContentStrategy)

Method Detail

appendStateback to summary
pack-priv void appendState(final StringBuilder buf)
closeback to summary
public void close() throws IOException

Implements org.apache.hc.core5.http.HttpConnection.close.

Doc from org.apache.hc.core5.http.HttpConnection.close.

Closes this connection gracefully. This method will attempt to flush the internal output buffer prior to closing the underlying socket. This method MUST NOT be called from a different thread to force shutdown of the connection. Use shutdown instead.

Annotations
@Override
Exceptions
IOException:

Doc from java.io.Closeable.close.

if an I/O error occurs

closeback to summary
public void close(final CloseMode closeMode)

Implements org.apache.hc.core5.io.ModalCloseable.close.

Doc from org.apache.hc.core5.io.ModalCloseable.close.

Closes this process or endpoint and releases any system resources associated with it. If the endpoint or the process is already closed then invoking this method has no effect.

Parameters
closeMode:CloseMode

How to close the receiver.

Annotations
@Override
commitMessageHeadback to summary
pack-priv void commitMessageHead(final OutgoingMessage messageHead, final boolean endStream, final FlushMode flushMode) throws HttpException, IOException
consumeDataback to summary
pack-priv abstract void consumeData(ByteBuffer src) throws HttpException, IOException
consumeHeaderback to summary
pack-priv abstract void consumeHeader(IncomingMessage messageHead, EntityDetails entityDetails) throws HttpException, IOException
createContentDecoderback to summary
pack-priv abstract ContentDecoder createContentDecoder(long contentLength, ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics metrics) throws HttpException
createContentEncoderback to summary
pack-priv abstract ContentEncoder createContentEncoder(long contentLength, WritableByteChannel channel, SessionOutputBuffer buffer, BasicHttpTransportMetrics metrics) throws HttpException
dataEndback to summary
pack-priv abstract void dataEnd(List<? extends Header> trailers) throws HttpException, IOException
disconnectedback to summary
pack-priv abstract void disconnected()
endOutputStreamback to summary
pack-priv AbstractHttp1StreamDuplexer.MessageDelineation endOutputStream(final List<? extends Header> trailers) throws IOException
executeback to summary
pack-priv abstract void execute(RequestExecutionCommand executionCommand) throws HttpException, IOException
getEndpointDetailsback to summary
public EndpointDetails getEndpointDetails()

Implements org.apache.hc.core5.http.HttpConnection.getEndpointDetails.

Doc from org.apache.hc.core5.http.HttpConnection.getEndpointDetails.

Returns this connection's endpoint details.

Returns:EndpointDetails

this connection's endpoint details.

Annotations
@Override
getIdback to summary
public String getId()

Implements org.apache.hc.core5.util.Identifiable.getId.

Annotations
@Override
getLocalAddressback to summary
public SocketAddress getLocalAddress()

Implements org.apache.hc.core5.http.HttpConnection.getLocalAddress.

Doc from org.apache.hc.core5.http.HttpConnection.getLocalAddress.

Returns this connection's local address or null if it is not bound yet.

Returns:SocketAddress

this connection's local address or null if it is not bound yet.

Annotations
@Override
getProtocolVersionback to summary
public ProtocolVersion getProtocolVersion()

Implements org.apache.hc.core5.http.HttpConnection.getProtocolVersion.

Doc from org.apache.hc.core5.http.HttpConnection.getProtocolVersion.

Returns this connection's protocol version or null if unknown.

Returns:ProtocolVersion

this connection's protocol version or null if unknown.

Annotations
@Override
getRemoteAddressback to summary
public SocketAddress getRemoteAddress()

Implements org.apache.hc.core5.http.HttpConnection.getRemoteAddress.

Doc from org.apache.hc.core5.http.HttpConnection.getRemoteAddress.

Returns this connection's remote address or null if it is not connected yet or unconnected.

Returns:SocketAddress

this connection's remote address or null if it is not connected yet or unconnected.

Annotations
@Override
getSessionTimeoutback to summary
pack-priv Timeout getSessionTimeout()
getSocketTimeoutback to summary
public Timeout getSocketTimeout()

Implements org.apache.hc.core5.http.SocketModalCloseable.getSocketTimeout.

Doc from org.apache.hc.core5.http.SocketModalCloseable.getSocketTimeout.

Returns the socket timeout value.

Returns:Timeout

timeout value.

Annotations
@Override
getSSLSessionback to summary
public SSLSession getSSLSession()

Implements org.apache.hc.core5.http.HttpConnection.getSSLSession.

Doc from org.apache.hc.core5.http.HttpConnection.getSSLSession.

Returns this connection's SSL session or null if TLS has not been activated.

Returns:SSLSession

this connection's SSL session or null if TLS has not been activated.

Annotations
@Override
handleIncomingMessageback to summary
pack-priv abstract boolean handleIncomingMessage(IncomingMessage incomingMessage) throws HttpException
handleOutgoingMessageback to summary
pack-priv abstract boolean handleOutgoingMessage(OutgoingMessage outgoingMessage) throws HttpException
handleTimeoutback to summary
pack-priv abstract boolean handleTimeout()
inputEndback to summary
pack-priv abstract void inputEnd() throws HttpException, IOException
inputIdleback to summary
pack-priv abstract boolean inputIdle()
isActiveback to summary
pack-priv boolean isActive()
isOpenback to summary
public boolean isOpen()

Implements org.apache.hc.core5.http.HttpConnection.isOpen.

Doc from org.apache.hc.core5.http.HttpConnection.isOpen.

Checks if this connection is open.

Returns:boolean

true if it is open, false if it is closed.

Annotations
@Override
isOutputCompletedback to summary
pack-priv boolean isOutputCompleted()
isOutputReadyback to summary
pack-priv abstract boolean isOutputReady()
isShuttingDownback to summary
pack-priv boolean isShuttingDown()
onConnectback to summary
public final void onConnect() throws HttpException, IOException
onDisconnectback to summary
public final void onDisconnect()
onExceptionback to summary
public final void onException(final Exception ex)
onInputback to summary
public final void onInput(final ByteBuffer src) throws HttpException, IOException
onOutputback to summary
public final void onOutput() throws IOException, HttpException
onTimeoutback to summary
public final void onTimeout(final Timeout timeout) throws IOException, HttpException
outputEndback to summary
pack-priv abstract void outputEnd() throws HttpException, IOException
outputIdleback to summary
pack-priv abstract boolean outputIdle()
parseMessageHeadback to summary
pack-priv IncomingMessage parseMessageHead(final boolean endOfStream) throws IOException, HttpException
processCommandsback to summary
private void processCommands() throws HttpException, IOException
produceOutputback to summary
pack-priv abstract void produceOutput() throws HttpException, IOException
requestSessionInputback to summary
pack-priv void requestSessionInput()
requestSessionOutputback to summary
pack-priv void requestSessionOutput()
requestShutdownback to summary
pack-priv void requestShutdown(final CloseMode closeMode)
setSessionTimeoutback to summary
pack-priv void setSessionTimeout(final Timeout timeout)
setSocketTimeoutback to summary
public void setSocketTimeout(final Timeout timeout)

Implements org.apache.hc.core5.http.SocketModalCloseable.setSocketTimeout.

Doc from org.apache.hc.core5.http.SocketModalCloseable.setSocketTimeout.

Sets the socket timeout value.

Parameters
timeout:Timeout

timeout value

Annotations
@Override
shutdownSessionback to summary
pack-priv void shutdownSession(final CloseMode closeMode)
shutdownSessionback to summary
pack-priv void shutdownSession(final Exception cause)
streamOutputback to summary
pack-priv int streamOutput(final ByteBuffer src) throws IOException
suspendSessionInputback to summary
pack-priv void suspendSessionInput()
suspendSessionOutputback to summary
pack-priv void suspendSessionOutput() throws IOException
terminateback to summary
pack-priv abstract void terminate(final Exception exception)
updateCapacityback to summary
pack-priv abstract void updateCapacity(CapacityChannel capacityChannel) throws HttpException, IOException
updateInputMetricsback to summary
pack-priv abstract void updateInputMetrics(IncomingMessage incomingMessage, BasicHttpConnectionMetrics connMetrics)
updateOutputMetricsback to summary
pack-priv abstract void updateOutputMetrics(OutgoingMessage outgoingMessage, BasicHttpConnectionMetrics connMetrics)
org.apache.hc.core5.http.impl.nio back to summary

pack-priv Class AbstractHttp1StreamDuplexer.CapacityWindow

extends Object
implements CapacityChannel
Class Inheritance
  • java.lang.Object
  • org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer.CapacityWindow
All Implemented Interfaces
org.apache.hc.core5.http.nio.CapacityChannel

Field Summary

Modifier and TypeField and Description
private boolean
private final IOSession
private final Object
private int

Constructor Summary

AccessConstructor and Description
pack-priv
CapacityWindow(final int window, final IOSession ioSession)

Method Summary

Modifier and TypeMethod and Description
pack-priv void
close()

Closes the capacity channel, preventing user code from accidentally requesting read events outside of the context of the request the channel was created for

pack-priv int
pack-priv int
removeCapacity(final int delta)

Internal method for removing capacity.

public void
update(final int
non-negative number of extra bytes the consumer can accept.
increment
)

Implements org.apache.hc.core5.http.nio.CapacityChannel.update.

Updates data capacity information through this channel.
private void
updateWindow(final int delta)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

closedback to summary
private boolean closed
ioSessionback to summary
private final IOSession ioSession
lockback to summary
private final Object lock
windowback to summary
private int window

Constructor Detail

CapacityWindowback to summary
pack-priv CapacityWindow(final int window, final IOSession ioSession)

Method Detail

closeback to summary
pack-priv void close()

Closes the capacity channel, preventing user code from accidentally requesting read events outside of the context of the request the channel was created for

getWindowback to summary
pack-priv int getWindow()
removeCapacityback to summary
pack-priv int removeCapacity(final int delta)

Internal method for removing capacity. We don't need to check if this channel is closed in it.

updateback to summary
public void update(final int increment) throws IOException

Implements org.apache.hc.core5.http.nio.CapacityChannel.update.

Doc from org.apache.hc.core5.http.nio.CapacityChannel.update.

Updates data capacity information through this channel. The total number of bytes the consumer is capable of accepting is incremented by the given increment number.

Parameters
increment:int

non-negative number of extra bytes the consumer can accept.

Annotations
@Override
updateWindowback to summary
private void updateWindow(final int delta)
org.apache.hc.core5.http.impl.nio back to summary

private final Enum AbstractHttp1StreamDuplexer.ConnectionState

extends Enum<AbstractHttp1StreamDuplexer.ConnectionState>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final AbstractHttp1StreamDuplexer.ConnectionState
public static final AbstractHttp1StreamDuplexer.ConnectionState
public static final AbstractHttp1StreamDuplexer.ConnectionState
public static final AbstractHttp1StreamDuplexer.ConnectionState

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static AbstractHttp1StreamDuplexer.ConnectionState
public static AbstractHttp1StreamDuplexer.ConnectionState[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

ACTIVEback to summary
public static final AbstractHttp1StreamDuplexer.ConnectionState ACTIVE
GRACEFUL_SHUTDOWNback to summary
public static final AbstractHttp1StreamDuplexer.ConnectionState GRACEFUL_SHUTDOWN
READYback to summary
public static final AbstractHttp1StreamDuplexer.ConnectionState READY
SHUTDOWNback to summary
public static final AbstractHttp1StreamDuplexer.ConnectionState SHUTDOWN

Constructor Detail

ConnectionStateback to summary
private ConnectionState()

Method Detail

valueOfback to summary
public static AbstractHttp1StreamDuplexer.ConnectionState valueOf(String name)
valuesback to summary
public static AbstractHttp1StreamDuplexer.ConnectionState[] values()
org.apache.hc.core5.http.impl.nio back to summary

pack-priv final Enum AbstractHttp1StreamDuplexer.MessageDelineation

extends Enum<AbstractHttp1StreamDuplexer.MessageDelineation>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final AbstractHttp1StreamDuplexer.MessageDelineation
public static final AbstractHttp1StreamDuplexer.MessageDelineation
public static final AbstractHttp1StreamDuplexer.MessageDelineation

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static AbstractHttp1StreamDuplexer.MessageDelineation
public static AbstractHttp1StreamDuplexer.MessageDelineation[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

CHUNK_CODEDback to summary
public static final AbstractHttp1StreamDuplexer.MessageDelineation CHUNK_CODED
MESSAGE_HEADback to summary
public static final AbstractHttp1StreamDuplexer.MessageDelineation MESSAGE_HEAD
NONEback to summary
public static final AbstractHttp1StreamDuplexer.MessageDelineation NONE

Constructor Detail

MessageDelineationback to summary
private MessageDelineation()

Method Detail

valueOfback to summary
public static AbstractHttp1StreamDuplexer.MessageDelineation valueOf(String name)
valuesback to summary
public static AbstractHttp1StreamDuplexer.MessageDelineation[] values()