org.enhydra.servlet.connectionMethods.EnhydraDirector
Class EnhydraDirectorBufferedOutputStream
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.BufferedOutputStream
org.enhydra.servlet.connectionMethods.EnhydraDirector.EnhydraDirectorBufferedOutputStream
- public class EnhydraDirectorBufferedOutputStream
- extends java.io.BufferedOutputStream
Extension of BufferedOutputStream
to allow "reset" of the
buffer.
A servlet container's ServletResponse
object should not go
into the "committed" (data sent) state until the headers have actually been
sent over the wire. This allows a servlet to specify a large buffer size and
be able to reset or change headers well after the first byte of data has been
written to the ServletOutputStream
.
This class has a reset()
that, after checking for committed
state of the connection, discards any buffered data and self destructs,
dropping any reference to its internally held output stream. Once
reset()
has been called, this object must be discarded as it
is then useless. A new instance should be created in its place.
Fields inherited from class java.io.BufferedOutputStream |
buf, count |
Fields inherited from class java.io.FilterOutputStream |
out |
Method Summary |
void |
close()
Flushes outgoing data, then flushes the contained output stream. |
void |
flush()
|
void |
reset()
Discards buffered data and drops reference to the output stream.
|
Methods inherited from class java.io.BufferedOutputStream |
write, write |
Methods inherited from class java.io.FilterOutputStream |
write |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EnhydraDirectorBufferedOutputStream
public EnhydraDirectorBufferedOutputStream(java.io.OutputStream os,
int size,
EnhydraDirectorConnection connection)
- Creates a new instance with the specified connection context,
OutputStream
, and buffer size.
- Parameters:
os
- The output stream.size
- Buffer size.connection
- The connection context.
reset
public void reset()
throws java.lang.IllegalStateException
- Discards buffered data and drops reference to the output stream.
If the current connection has not sent any data over the wire, this
method drops any buffered data, as well as the output stream reference,
to ensure that this instance makes no further calls to the underlying
stream. It is expected that the caller of this method will also discard
any reference to this EnhydraDirectorBufferedOutputStream
object. Once reset()
has been called, this stream becomes
unusable.
- Throws:
java.lang.IllegalStateException
- If called after data has been sent.
close
public void close()
throws java.io.IOException
- Flushes outgoing data, then flushes the contained output stream.
- Throws:
java.io.IOException
- If there is an error sending data.
flush
public void flush()
throws java.io.IOException
- Throws:
java.io.IOException