public final class PathEntityProducer extends Object implements AsyncEntityProducer
AsyncEntityProducer
implementation that generates a data stream from the content at a Path
.Constructor and Description |
---|
PathEntityProducer(Path file,
ContentType contentType,
boolean chunked,
OpenOption... openOptions) |
PathEntityProducer(Path file,
ContentType contentType,
OpenOption... openOptions) |
PathEntityProducer(Path file,
int bufferSize,
ContentType contentType,
boolean chunked,
OpenOption... openOptions) |
PathEntityProducer(Path file,
OpenOption... openOptions) |
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 dataStreamChannel)
Triggered to signal the ability of the underlying data channel
to accept more data.
|
void |
releaseResources() |
public PathEntityProducer(Path file, ContentType contentType, boolean chunked, OpenOption... openOptions) throws IOException
IOException
public PathEntityProducer(Path file, ContentType contentType, OpenOption... openOptions) throws IOException
IOException
public PathEntityProducer(Path file, int bufferSize, ContentType contentType, boolean chunked, OpenOption... openOptions) throws IOException
IOException
public PathEntityProducer(Path file, OpenOption... openOptions) throws IOException
IOException
public int available()
AsyncDataProducer
Please note this method should return zero if the data producer
is unable to produce any more data, in which case
AsyncDataProducer.produce(DataStreamChannel)
method will not get triggered.
The producer can resume writing out data asynchronously
once more data becomes available or request output readiness events
with DataStreamChannel.requestOutput()
.
available
in interface AsyncDataProducer
AsyncDataProducer.produce(DataStreamChannel)
,
DataStreamChannel.requestOutput()
public void failed(Exception cause)
AsyncEntityProducer
failed
in interface AsyncEntityProducer
cause
- the cause of the failure.public String getContentEncoding()
EntityDetails
getContentEncoding
in interface EntityDetails
null
.public long getContentLength()
EntityDetails
getContentLength
in interface EntityDetails
0
.public String getContentType()
EntityDetails
getContentType
in interface EntityDetails
null
.public Exception getException()
public Set<String> getTrailerNames()
EntityDetails
getTrailerNames
in interface EntityDetails
public boolean isChunked()
EntityDetails
The behavior of wrapping entities is implementation dependent, but should respect the primary purpose.
isChunked
in interface EntityDetails
public boolean isRepeatable()
AsyncEntityProducer
ResourceHolder.releaseResources()
.isRepeatable
in interface AsyncEntityProducer
public void produce(DataStreamChannel dataStreamChannel) throws IOException
AsyncDataProducer
Please note this method gets triggered only if AsyncDataProducer.available()
returns a positive value.
produce
in interface AsyncDataProducer
dataStreamChannel
- the data channel capable of accepting more data.IOException
- in case of an I/O error.AsyncDataProducer.available()
public void releaseResources()
releaseResources
in interface ResourceHolder
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.