public abstract class AbstractContentEncoder extends Object implements ContentEncoder
ContentEncoder
that serves as a base for all content
encoder implementations.Constructor and Description |
---|
AbstractContentEncoder(WritableByteChannel channel,
SessionOutputBuffer buffer,
BasicHttpTransportMetrics metrics)
Creates an instance of this class.
|
Modifier and Type | Method and Description |
---|---|
protected void |
assertNotCompleted() |
protected SessionOutputBuffer |
buffer() |
protected WritableByteChannel |
channel() |
void |
complete() |
void |
complete(List<? extends Header> trailers)
Terminates the content stream.
|
protected int |
flushToChannel()
Flushes content of the session buffer to the channel and updates transport metrics.
|
boolean |
isCompleted()
Returns
true if the entity has been transferred in its
entirety. |
protected BasicHttpTransportMetrics |
metrics() |
protected int |
writeToBuffer(ByteBuffer src,
int limit)
Transfers content of the source to the buffer and updates transport metrics.
|
protected int |
writeToChannel(ByteBuffer src)
Flushes content of the given buffer to the channel and updates transport metrics.
|
protected int |
writeToChannel(ByteBuffer src,
int limit)
Transfers content of the source to the channel and updates transport metrics.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
write
public AbstractContentEncoder(WritableByteChannel channel, SessionOutputBuffer buffer, BasicHttpTransportMetrics metrics)
channel
- the destination channel.buffer
- the session output buffer that can be used to store
session data for intermediate processing.metrics
- Transport metrics of the underlying HTTP transport.protected WritableByteChannel channel()
protected SessionOutputBuffer buffer()
protected BasicHttpTransportMetrics metrics()
public boolean isCompleted()
ContentEncoder
true
if the entity has been transferred in its
entirety.isCompleted
in interface ContentEncoder
true
if all the content has been produced,
false
otherwise.public void complete(List<? extends Header> trailers) throws IOException
ContentEncoder
complete
in interface ContentEncoder
IOException
- if I/O error occurs while writing contentpublic final void complete() throws IOException
IOException
protected void assertNotCompleted()
protected int flushToChannel() throws IOException
IOException
- in case of an I/O error.protected int writeToChannel(ByteBuffer src) throws IOException
IOException
- in case of an I/O error.protected int writeToChannel(ByteBuffer src, int limit) throws IOException
src
- source.limit
- max number of bytes to transfer.IOException
- in case of an I/O error.protected int writeToBuffer(ByteBuffer src, int limit) throws IOException
src
- source.limit
- max number of bytes to transfer.IOException
- in case of an I/O error.Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.