## org.mortbay.http
Class BufferedOutputStream

    java.lang.Object
      |
      +--java.io.OutputStream
            |
            +--org.mortbay.util.ByteBufferOutputStream
                  |
                  +--org.mortbay.http.BufferedOutputStream

All Implemented Interfaces:
  HttpMessage.HeaderWriter

Direct Known Subclasses:
  AJP13OutputStream, ChunkingOutputStream

public class BufferedOutputStream
extends ByteBufferOutputStream
implements HttpMessage.HeaderWriter

Buffered Output Stream. Uses ByteBufferOutputStream to allow pre and post writes.

Version:
  $Revision: 1.4 $
Author:
  Greg Wilkins (gregw)

Constructor Summary
`BufferedOutputStream(java.io.OutputStream out, int capacity, int headerReserve, int preReserve, int postReserve)` Constructor.

Method Summary
`void` `close()`
`void` `destroy()`
`void` `flush()` This implementation calls the commitObserver on the first flush since construction or reset.
`boolean` `getBypassBuffer()`
`OutputObserver` `getCommitObserver()`
`java.io.OutputStream` `getOutputStream()`
`boolean` `isCommitted()`
`void` `resetStream()`
`void` `setBypassBuffer(boolean bypassBuffer)`
`void` `setCommitObserver(OutputObserver commitObserver)`
`void` `write(byte[] b)`
`void` `write(byte[] b, int offset, int length)`
`void` `writeHeader(HttpMessage httpMessage)`

Methods inherited from class org.mortbay.util.ByteBufferOutputStream
`bufferSize, capacity, ensureCapacity, ensureReserve, ensureSize, ensureSize, ensureSpareCapacity, isFixed, postReserve, postwrite, preReserve, prewrite, prewrite, prewrite, reset, setFixed, size, spareCapacity, write, writeTo`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BufferedOutputStream

    public BufferedOutputStream(java.io.OutputStream out,
                                int capacity,
                                int headerReserve,
                                int preReserve,
                                int postReserve)

  Constructor.

Parameters:
  `out` - the OutputStream to buffer to.
  `capacity` - Buffer capacity.
  `headerReserve` - The reserve of bytes for prepending to be used for the first buffer after reset
  `preReserve` - The reserve of bytes for prepending
  `postReserve` - The reserve of bytes for appending

Method Detail

### getOutputStream

    public java.io.OutputStream getOutputStream()

### getCommitObserver

    public OutputObserver getCommitObserver()

  Returns:
    OutputObserver to receives commit events from this stream.

### setCommitObserver

    public void setCommitObserver(OutputObserver commitObserver)

  Parameters:
    `commitObserver` - OutputObserver to receives commit events from this stream.

### isCommitted

    public boolean isCommitted()

### getBypassBuffer

    public boolean getBypassBuffer()

  Returns:
    If true, the buffer is bypassed for large writes to a committed stream.

### setBypassBuffer

    public void setBypassBuffer(boolean bypassBuffer)

  Parameters:
    `bypassBuffer` - If true, the buffer is bypassed for large writes to a committed stream.

### writeHeader

    public void writeHeader(HttpMessage httpMessage)
                     throws java.io.IOException

  Specified by:
    `writeHeader` in interface `HttpMessage.HeaderWriter`
    `java.io.IOException`

### write

    public void write(byte[] b)
               throws java.io.IOException

  Overrides:
    `write` in class `ByteBufferOutputStream`
    `java.io.IOException`

### write

    public void write(byte[] b,
                      int offset,
                      int length)
               throws java.io.IOException

  Overrides:
    `write` in class `ByteBufferOutputStream`
    `java.io.IOException`

### flush

    public void flush()
               throws java.io.IOException

  This implementation calls the commitObserver on the first flush since construction or reset.

  Overrides:
    `flush` in class `ByteBufferOutputStream`
    `java.io.IOException`

### close

    public void close()
               throws java.io.IOException

  Overrides:
    `close` in class `ByteBufferOutputStream`
    `java.io.IOException`

### resetStream

    public void resetStream()

  Overrides:
    `resetStream` in class `ByteBufferOutputStream`

### destroy

    public void destroy()

  Overrides:
    `destroy` in class `ByteBufferOutputStream`

Copyright © 2000 Mortbay Consulting Pty. Ltd. All Rights Reserved.