Top Description Fields Constructors Methods
org.apache.hc.core5.http.nio.entity

public Class DigestingEntityConsumer<T>

extends Object
implements AsyncEntityConsumer<T>
Class Inheritance
All Implemented Interfaces
org.apache.hc.core5.http.nio.AsyncEntityConsumer, org.apache.hc.core5.http.nio.AsyncDataConsumer, org.apache.hc.core5.http.nio.ResourceHolder
Imports
java.io.IOException, java.nio.ByteBuffer, java.security.MessageDigest, .NoSuchAlgorithmException, java.util.ArrayList, .List, org.apache.hc.core5.concurrent.FutureCallback, org.apache.hc.core5.http.EntityDetails, .Header, .HttpException, org.apache.hc.core5.http.nio.AsyncEntityConsumer, .CapacityChannel, org.apache.hc.core5.util.Args

AsyncEntityConsumer decorator that calculates a digest hash from the data stream content and keeps the list of trailers received with the data stream.
Since
5.0

Field Summary

Modifier and TypeField and Description
private volatile byte[]
private final MessageDigest
private final List<Header>
private final AsyncEntityConsumer<T>

Constructor Summary

AccessConstructor and Description
public
DigestingEntityConsumer(final String algo, final AsyncEntityConsumer<T> wrapped)

Method Summary

Modifier and TypeMethod and Description
public void
consume(final ByteBuffer
data source.
src
)

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.consume.

Triggered to pass incoming data to the data consumer.
public void
failed(final Exception
the cause of the failure.
cause
)

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.failed.

Triggered to signal a failure in data processing.
public T
getContent()

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.getContent.

Returns the result of entity processing when it becomes available or null if the entity is still being received.
public byte[]

Returns:

the digest hash value.
getDigest
()

Returns digest hash.

public List<Header>

Returns:

the list of trailers sent with the data stream
getTrailers
()

List of trailers sent with the data stream.

public void
public void
streamEnd(final List<? extends Header>
data stream trailers.
trailers
)

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.streamEnd.

Triggered to signal termination of the data stream.
public void
streamStart(final EntityDetails
the details of the incoming message entity.
entityDetails
,
final FutureCallback<T>
the result callback.
resultCallback
)

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.streamStart.

Signals beginning of an incoming request entity stream.
public void
updateCapacity(final CapacityChannel
the channel for capacity updates.
capacityChannel
)

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.updateCapacity.

Triggered to signal ability of the underlying data stream to receive data capacity update.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

digestback to summary
private volatile byte[] digest
digesterback to summary
private final MessageDigest digester
trailersback to summary
private final List<Header> trailers
wrappedback to summary
private final AsyncEntityConsumer<T> wrapped

Constructor Detail

DigestingEntityConsumerback to summary
public DigestingEntityConsumer(final String algo, final AsyncEntityConsumer<T> wrapped) throws NoSuchAlgorithmException

Method Detail

consumeback to summary
public void consume(final ByteBuffer src) throws IOException

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.consume.

Doc from org.apache.hc.core5.http.nio.AsyncDataConsumer.consume.

Triggered to pass incoming data to the data consumer. The consumer must consume the entire content of the data buffer. The consumer must stop incrementing its capacity on the capacity channel if it is unable to accept more data. Once the data consumer has handled accumulated data or allocated more intermediate storage it can update its capacity information on the capacity channel.

Parameters
src:ByteBuffer

data source.

Annotations
@Override
failedback to summary
public void failed(final Exception cause)

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.failed.

Doc from org.apache.hc.core5.http.nio.AsyncEntityConsumer.failed.

Triggered to signal a failure in data processing.

Parameters
cause:Exception

the cause of the failure.

Annotations
@Override
getContentback to summary
public T getContent()

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.getContent.

Doc from org.apache.hc.core5.http.nio.AsyncEntityConsumer.getContent.

Returns the result of entity processing when it becomes available or null if the entity is still being received.

Returns:T

the response processing result.

Annotations
@Override
getDigestback to summary
public byte[] getDigest()

Returns digest hash.

Returns:byte[]

the digest hash value.

getTrailersback to summary
public List<Header> getTrailers()

List of trailers sent with the data stream.

Returns:List<Header>

the list of trailers sent with the data stream

releaseResourcesback to summary
public void releaseResources()

Implements org.apache.hc.core5.http.nio.ResourceHolder.releaseResources.

Annotations
@Override
streamEndback to summary
public void streamEnd(final List<? extends Header> trailers) throws HttpException, IOException

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.streamEnd.

Doc from org.apache.hc.core5.http.nio.AsyncDataConsumer.streamEnd.

Triggered to signal termination of the data stream.

Parameters
trailers:List<? extends Header>

data stream trailers.

Annotations
@Override
streamStartback to summary
public void streamStart(final EntityDetails entityDetails, final FutureCallback<T> resultCallback) throws IOException, HttpException

Implements org.apache.hc.core5.http.nio.AsyncEntityConsumer.streamStart.

Doc from org.apache.hc.core5.http.nio.AsyncEntityConsumer.streamStart.

Signals beginning of an incoming request entity stream.

Parameters
entityDetails:EntityDetails

the details of the incoming message entity.

resultCallback:FutureCallback<T>

the result callback.

Annotations
@Override
updateCapacityback to summary
public void updateCapacity(final CapacityChannel capacityChannel) throws IOException

Implements org.apache.hc.core5.http.nio.AsyncDataConsumer.updateCapacity.

Doc from org.apache.hc.core5.http.nio.AsyncDataConsumer.updateCapacity.

Triggered to signal ability of the underlying data stream to receive data capacity update. The data consumer can choose to write data immediately inside the call or asynchronously at some later point.

Parameters
capacityChannel:CapacityChannel

the channel for capacity updates.

Annotations
@Override