Class AbstractContentDecoder
java.lang.Object
org.apache.hc.core5.http.impl.nio.AbstractContentDecoder
- All Implemented Interfaces:
ContentDecoder
- Direct Known Subclasses:
ChunkDecoder
,IdentityDecoder
,LengthDelimitedDecoder
Abstract
ContentDecoder
that serves as a base for all content
decoder implementations.- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final SessionInputBuffer
(package private) final ReadableByteChannel
protected boolean
(package private) final BasicHttpTransportMetrics
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractContentDecoder
(ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics metrics) Creates an instance of this class. -
Method Summary
Modifier and TypeMethodDescriptionprotected SessionInputBuffer
buffer()
protected ReadableByteChannel
channel()
protected int
Reads from the channel to the session buffer.Returns content trailers if availableboolean
Returnstrue
if the entity has been received in its entirety.protected BasicHttpTransportMetrics
metrics()
protected int
Reads from the channel to the destination.protected int
readFromChannel
(ByteBuffer dst, int limit) Reads from the channel to the destination.protected void
Sets the completed status of this decoder to true.void
setCompleted
(boolean completed) Sets the completed status of this decoder.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.hc.core5.http.nio.ContentDecoder
read
-
Field Details
-
channel
-
buffer
-
metrics
-
completed
protected boolean completed
-
-
Constructor Details
-
AbstractContentDecoder
public AbstractContentDecoder(ReadableByteChannel channel, SessionInputBuffer buffer, BasicHttpTransportMetrics metrics) Creates an instance of this class.- Parameters:
channel
- the source channel.buffer
- the session input buffer that can be used to store session data for intermediate processing.metrics
- Transport metrics of the underlying HTTP transport.
-
-
Method Details
-
channel
-
buffer
-
metrics
-
isCompleted
public boolean isCompleted()Description copied from interface:ContentDecoder
Returnstrue
if the entity has been received in its entirety.- Specified by:
isCompleted
in interfaceContentDecoder
- Returns:
true
if all the content has been consumed,false
otherwise.
-
setCompleted
public void setCompleted(boolean completed) Sets the completed status of this decoder. Normally this is not necessary (the decoder will automatically complete when the underlying channel returns EOF). It is useful to mark the decoder as completed if you have some other means to know all the necessary data has been read and want to reuse the underlying connection for more messages.- Parameters:
completed
- the completed status of this decoder.- Since:
- 4.4.11
-
setCompleted
protected void setCompleted()Sets the completed status of this decoder to true. Normally this is not necessary (the decoder will automatically complete when the underlying channel returns EOF). It is useful to mark the decoder as completed if you have some other means to know all the necessary data has been read and want to reuse the underlying connection for more messages.- Since:
- 4.4.11
-
readFromChannel
Reads from the channel to the destination.- Parameters:
dst
- destination.- Returns:
- number of bytes transferred.
- Throws:
IOException
- Since:
- 4.3
-
fillBufferFromChannel
Reads from the channel to the session buffer.- Returns:
- number of bytes transferred.
- Throws:
IOException
- Since:
- 4.3
-
readFromChannel
Reads from the channel to the destination.- Parameters:
dst
- destination.limit
- max number of bytes to transfer.- Returns:
- number of bytes transferred.
- Throws:
IOException
- Since:
- 4.3
-
getTrailers
Description copied from interface:ContentDecoder
Returns content trailers if available- Specified by:
getTrailers
in interfaceContentDecoder
- Returns:
- list of trailers
-