Package org.apache.http.impl.io
Class SessionOutputBufferImpl
java.lang.Object
org.apache.http.impl.io.SessionOutputBufferImpl
- All Implemented Interfaces:
BufferInfo
,SessionOutputBuffer
Abstract base class for session output buffers that stream data to
an arbitrary
OutputStream
. This class buffers small chunks of
output data in an internal byte array for optimal output performance.
writeLine(CharArrayBuffer)
and writeLine(String)
methods
of this class use CR-LF as a line delimiter.
- Since:
- 4.3
-
Constructor Summary
ConstructorsConstructorDescriptionSessionOutputBufferImpl
(HttpTransportMetricsImpl metrics, int buffersize) SessionOutputBufferImpl
(HttpTransportMetricsImpl metrics, int buffersize, int fragementSizeHint, CharsetEncoder charencoder) Creates new instance of SessionOutputBufferImpl. -
Method Summary
Modifier and TypeMethodDescriptionint
Returns available space in the buffer.void
bind
(OutputStream outstream) int
capacity()
Returns total capacity of the buffervoid
flush()
Flushes this session buffer and forces any buffered output bytes to be written out.ReturnsHttpTransportMetrics
for this session buffer.boolean
isBound()
int
length()
Return length data stored in the buffervoid
write
(byte[] b) Writesb.length
bytes from the specified byte array to this session buffer.void
write
(byte[] b, int off, int len) Writeslen
bytes from the specified byte array starting at offsetoff
to this session buffer.void
write
(int b) Writes the specified byte to this session buffer.void
Writes characters from the specified string followed by a line delimiter to this session buffer.void
writeLine
(CharArrayBuffer charbuffer) Writes characters from the specified char array followed by a line delimiter to this session buffer.
-
Constructor Details
-
SessionOutputBufferImpl
public SessionOutputBufferImpl(HttpTransportMetricsImpl metrics, int buffersize, int fragementSizeHint, CharsetEncoder charencoder) Creates new instance of SessionOutputBufferImpl.- Parameters:
metrics
- HTTP transport metrics.buffersize
- buffer size. Must be a positive number.fragementSizeHint
- fragment size hint defining a minimal size of a fragment that should be written out directly to the socket bypassing the session buffer. Value0
disables fragment buffering.charencoder
- charencoder to be used for encoding HTTP protocol elements. Ifnull
simple type cast will be used for char to byte conversion.
-
SessionOutputBufferImpl
-
-
Method Details
-
bind
-
isBound
public boolean isBound() -
capacity
public int capacity()Description copied from interface:BufferInfo
Returns total capacity of the buffer- Specified by:
capacity
in interfaceBufferInfo
- Returns:
- total capacity
-
length
public int length()Description copied from interface:BufferInfo
Return length data stored in the buffer- Specified by:
length
in interfaceBufferInfo
- Returns:
- data length
-
available
public int available()Description copied from interface:BufferInfo
Returns available space in the buffer.- Specified by:
available
in interfaceBufferInfo
- Returns:
- available space.
-
flush
Description copied from interface:SessionOutputBuffer
Flushes this session buffer and forces any buffered output bytes to be written out. The general contract offlush
is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.- Specified by:
flush
in interfaceSessionOutputBuffer
- Throws:
IOException
- if an I/O error occurs.
-
write
Description copied from interface:SessionOutputBuffer
Writeslen
bytes from the specified byte array starting at offsetoff
to this session buffer.If
off
is negative, orlen
is negative, oroff+len
is greater than the length of the arrayb
, then anIndexOutOfBoundsException
is thrown.- Specified by:
write
in interfaceSessionOutputBuffer
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
IOException
- if an I/O error occurs.
-
write
Description copied from interface:SessionOutputBuffer
Writesb.length
bytes from the specified byte array to this session buffer.- Specified by:
write
in interfaceSessionOutputBuffer
- Parameters:
b
- the data.- Throws:
IOException
- if an I/O error occurs.
-
write
Description copied from interface:SessionOutputBuffer
Writes the specified byte to this session buffer.- Specified by:
write
in interfaceSessionOutputBuffer
- Parameters:
b
- thebyte
.- Throws:
IOException
- if an I/O error occurs.
-
writeLine
Writes characters from the specified string followed by a line delimiter to this session buffer.This method uses CR-LF as a line delimiter.
- Specified by:
writeLine
in interfaceSessionOutputBuffer
- Parameters:
s
- the line.- Throws:
IOException
- if an I/O error occurs.
-
writeLine
Writes characters from the specified char array followed by a line delimiter to this session buffer.This method uses CR-LF as a line delimiter.
- Specified by:
writeLine
in interfaceSessionOutputBuffer
- Parameters:
charbuffer
- the buffer containing chars of the line.- Throws:
IOException
- if an I/O error occurs.
-
getMetrics
Description copied from interface:SessionOutputBuffer
ReturnsHttpTransportMetrics
for this session buffer.- Specified by:
getMetrics
in interfaceSessionOutputBuffer
- Returns:
- transport metrics.
-