org.apache.http.impl.io
Class AbstractSessionOutputBuffer

java.lang.Object
  extended by org.apache.http.impl.io.AbstractSessionOutputBuffer
All Implemented Interfaces:
SessionOutputBuffer
Direct Known Subclasses:
SocketOutputBuffer

public abstract class AbstractSessionOutputBuffer
extends Object
implements 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.0

Constructor Summary
AbstractSessionOutputBuffer()
           
 
Method Summary
 void flush()
          Flushes this session buffer and forces any buffered output bytes to be written out.
protected  void flushBuffer()
           
 HttpTransportMetrics getMetrics()
          Returns HttpTransportMetrics for this session buffer.
protected  void init(OutputStream outstream, int buffersize, HttpParams params)
          Initializes this session output buffer.
 void write(byte[] b)
          Writes b.length bytes from the specified byte array to this session buffer.
 void write(byte[] b, int off, int len)
          Writes len bytes from the specified byte array starting at offset off to this session buffer.
 void write(int b)
          Writes the specified byte to this session buffer.
 void writeLine(CharArrayBuffer s)
          Writes characters from the specified char array followed by a line delimiter to this session buffer.
 void writeLine(String s)
          Writes characters from the specified string followed by a line delimiter to this session buffer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSessionOutputBuffer

public AbstractSessionOutputBuffer()
Method Detail

init

protected void init(OutputStream outstream,
                    int buffersize,
                    HttpParams params)
Initializes this session output buffer.

The following HTTP parameters affect the initialization:

The CoreProtocolPNames.HTTP_ELEMENT_CHARSET parameter determines the charset to be used for encoding HTTP lines. If not specified, US-ASCII will be used per default.

Parameters:
outstream - the destination output stream.
buffersize - the size of the internal buffer.
params - HTTP parameters.
See Also:
CoreProtocolPNames.HTTP_ELEMENT_CHARSET

flushBuffer

protected void flushBuffer()
                    throws IOException
Throws:
IOException

flush

public void flush()
           throws IOException
Description copied from interface: SessionOutputBuffer
Flushes this session buffer and forces any buffered output bytes to be written out. The general contract of flush 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 interface SessionOutputBuffer
Throws:
IOException - if an I/O error occurs.

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Description copied from interface: SessionOutputBuffer
Writes len bytes from the specified byte array starting at offset off to this session buffer.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

Specified by:
write in interface SessionOutputBuffer
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

public void write(byte[] b)
           throws IOException
Description copied from interface: SessionOutputBuffer
Writes b.length bytes from the specified byte array to this session buffer.

Specified by:
write in interface SessionOutputBuffer
Parameters:
b - the data.
Throws:
IOException - if an I/O error occurs.

write

public void write(int b)
           throws IOException
Description copied from interface: SessionOutputBuffer
Writes the specified byte to this session buffer.

Specified by:
write in interface SessionOutputBuffer
Parameters:
b - the byte.
Throws:
IOException - if an I/O error occurs.

writeLine

public void writeLine(String s)
               throws IOException
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 interface SessionOutputBuffer
Parameters:
s - the line.
Throws:
IOException - if an I/O error occurs.

writeLine

public void writeLine(CharArrayBuffer s)
               throws IOException
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 interface SessionOutputBuffer
Parameters:
s - the buffer containing chars of the line.
Throws:
IOException - if an I/O error occurs.

getMetrics

public HttpTransportMetrics getMetrics()
Description copied from interface: SessionOutputBuffer
Returns HttpTransportMetrics for this session buffer.

Specified by:
getMetrics in interface SessionOutputBuffer
Returns:
transport metrics.


Copyright © 2005-2009 Apache Software Foundation. All Rights Reserved.