public abstract class AbstractClassicEntityProducer extends Object implements AsyncEntityProducer
AsyncEntityProducer
implementation that acts as a compatibility
layer for classic OutputStream
based interfaces. Blocking output
processing is executed through an Executor
.Constructor and Description |
---|
AbstractClassicEntityProducer(int initialBufferSize,
ContentType contentType,
Executor executor) |
Modifier and Type | Method and Description |
---|---|
int |
available()
Returns the number of bytes immediately available for output.
|
void |
failed(Exception cause)
Triggered to signal a failure in data generation.
|
String |
getContentEncoding()
Gets content encoding of this entity, if known.
|
long |
getContentLength()
Gets length of this entity, if known.
|
String |
getContentType()
Gets content type of this entity, if known.
|
Exception |
getException() |
Set<String> |
getTrailerNames()
Gets the preliminary declaration of trailing headers.
|
boolean |
isChunked()
Tests the chunked transfer hint for this entity.
|
boolean |
isRepeatable()
Determines whether the producer can consistently produce the same content
after invocation of
ResourceHolder.releaseResources() . |
void |
produce(DataStreamChannel channel)
Triggered to signal the ability of the underlying data channel
to accept more data.
|
protected abstract void |
produceData(ContentType contentType,
OutputStream outputStream)
Writes out entity data into the given stream.
|
void |
releaseResources() |
public AbstractClassicEntityProducer(int initialBufferSize, ContentType contentType, Executor executor)
protected abstract void produceData(ContentType contentType, OutputStream outputStream) throws IOException
contentType
- the entity content typeoutputStream
- the output streamIOException
public final boolean isRepeatable()
AsyncEntityProducer
ResourceHolder.releaseResources()
.isRepeatable
in interface AsyncEntityProducer
public final int available()
AsyncDataProducer
available
in interface AsyncDataProducer
public final void produce(DataStreamChannel channel) throws IOException
AsyncDataProducer
produce
in interface AsyncDataProducer
channel
- the data channel capable to accepting more data.IOException
public final long getContentLength()
EntityDetails
getContentLength
in interface EntityDetails
0
.public final String getContentType()
EntityDetails
getContentType
in interface EntityDetails
null
.public String getContentEncoding()
EntityDetails
getContentEncoding
in interface EntityDetails
null
.public final boolean isChunked()
EntityDetails
The behavior of wrapping entities is implementation dependent, but should respect the primary purpose.
isChunked
in interface EntityDetails
public final Set<String> getTrailerNames()
EntityDetails
getTrailerNames
in interface EntityDetails
public final void failed(Exception cause)
AsyncEntityProducer
failed
in interface AsyncEntityProducer
cause
- the cause of the failure.public final Exception getException()
public void releaseResources()
releaseResources
in interface ResourceHolder
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.