Class ClientHttp1StreamDuplexer
java.lang.Object
org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer<HttpResponse,HttpRequest>
org.apache.hc.core5.http.impl.nio.ClientHttp1StreamDuplexer
- All Implemented Interfaces:
Closeable
,AutoCloseable
,HttpConnection
,SocketModalCloseable
,ModalCloseable
,Identifiable
@Internal
public class ClientHttp1StreamDuplexer
extends AbstractHttp1StreamDuplexer<HttpResponse,HttpRequest>
I/O event handler for events fired by
ProtocolIOSession
that implements
client side HTTP/1.1 messaging protocol with full support for
duplexed message transmission and message pipelining.- Since:
- 5.0
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer
AbstractHttp1StreamDuplexer.CapacityWindow, AbstractHttp1StreamDuplexer.MessageDelineation
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConnectionReuseStrategy
private final Http1Config
private final HttpProcessor
private ClientHttp1StreamHandler
private ClientHttp1StreamHandler
private final Http1StreamChannel
<HttpRequest> private final Queue
<ClientHttp1StreamHandler> private final Http1StreamListener
-
Constructor Summary
ConstructorsConstructorDescriptionClientHttp1StreamDuplexer
(ProtocolIOSession ioSession, HttpProcessor httpProcessor, Http1Config http1Config, CharCodingConfig charCodingConfig, ConnectionReuseStrategy connectionReuseStrategy, NHttpMessageParser<HttpResponse> incomingMessageParser, NHttpMessageWriter<HttpRequest> outgoingMessageWriter, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, Http1StreamListener streamListener) -
Method Summary
Modifier and TypeMethodDescription(package private) void
appendState
(StringBuilder buf) (package private) void
consumeData
(ByteBuffer src) (package private) void
consumeHeader
(HttpResponse response, EntityDetails entityDetails) protected ContentDecoder
createContentDecoder
(long len, ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics metrics) protected ContentEncoder
createContentEncoder
(long len, WritableByteChannel channel, SessionOutputBuffer buffer, BasicHttpTransportMetrics metrics) (package private) void
(package private) void
(package private) void
execute
(RequestExecutionCommand executionCommand) protected boolean
handleIncomingMessage
(HttpResponse response) protected boolean
handleOutgoingMessage
(HttpRequest request) (package private) boolean
(package private) void
inputEnd()
(package private) boolean
(package private) boolean
(package private) void
(package private) boolean
(package private) void
(package private) void
toString()
(package private) void
updateCapacity
(CapacityChannel capacityChannel) (package private) void
updateInputMetrics
(HttpResponse response, BasicHttpConnectionMetrics connMetrics) (package private) void
updateOutputMetrics
(HttpRequest request, BasicHttpConnectionMetrics connMetrics) Methods inherited from class org.apache.hc.core5.http.impl.nio.AbstractHttp1StreamDuplexer
close, close, commitMessageHead, endOutputStream, getEndpointDetails, getId, getLocalAddress, getProtocolVersion, getRemoteAddress, getSessionTimeout, getSocketTimeout, getSSLSession, isActive, isOpen, isOutputCompleted, isShuttingDown, onConnect, onDisconnect, onException, onInput, onOutput, onTimeout, parseMessageHead, requestSessionInput, requestSessionOutput, requestShutdown, setSessionTimeout, setSocketTimeout, shutdownSession, shutdownSession, streamOutput, suspendSessionInput, suspendSessionOutput
-
Field Details
-
httpProcessor
-
connectionReuseStrategy
-
http1Config
-
streamListener
-
pipeline
-
outputChannel
-
outgoing
-
incoming
-
-
Constructor Details
-
ClientHttp1StreamDuplexer
public ClientHttp1StreamDuplexer(ProtocolIOSession ioSession, HttpProcessor httpProcessor, Http1Config http1Config, CharCodingConfig charCodingConfig, ConnectionReuseStrategy connectionReuseStrategy, NHttpMessageParser<HttpResponse> incomingMessageParser, NHttpMessageWriter<HttpRequest> outgoingMessageWriter, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, Http1StreamListener streamListener)
-
-
Method Details
-
terminate
- Specified by:
terminate
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
disconnected
void disconnected()- Specified by:
disconnected
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
updateInputMetrics
- Specified by:
updateInputMetrics
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
updateOutputMetrics
- Specified by:
updateOutputMetrics
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
handleIncomingMessage
- Specified by:
handleIncomingMessage
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
-
createContentDecoder
protected ContentDecoder createContentDecoder(long len, ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics metrics) throws HttpException - Specified by:
createContentDecoder
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
-
handleOutgoingMessage
- Specified by:
handleOutgoingMessage
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
-
createContentEncoder
protected ContentEncoder createContentEncoder(long len, WritableByteChannel channel, SessionOutputBuffer buffer, BasicHttpTransportMetrics metrics) throws HttpException - Specified by:
createContentEncoder
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
-
inputIdle
boolean inputIdle()- Specified by:
inputIdle
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
outputIdle
boolean outputIdle()- Specified by:
outputIdle
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
outputEnd
- Specified by:
outputEnd
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
execute
- Specified by:
execute
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
isOutputReady
boolean isOutputReady()- Specified by:
isOutputReady
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
produceOutput
- Specified by:
produceOutput
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
consumeHeader
void consumeHeader(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException - Specified by:
consumeHeader
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
consumeData
- Specified by:
consumeData
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
updateCapacity
- Specified by:
updateCapacity
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
dataEnd
- Specified by:
dataEnd
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
inputEnd
- Specified by:
inputEnd
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest> - Throws:
HttpException
IOException
-
handleTimeout
boolean handleTimeout()- Specified by:
handleTimeout
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
appendState
- Overrides:
appendState
in classAbstractHttp1StreamDuplexer<HttpResponse,
HttpRequest>
-
toString
-