activemq-cpp-3.6.0
decaf::io::FilterOutputStream Class Reference

This class is the superclass of all classes that filter output streams. More...

#include <src/main/decaf/io/FilterOutputStream.h>

Inheritance diagram for decaf::io::FilterOutputStream:

Public Member Functions

 FilterOutputStream (OutputStream *outputStream, bool own=false)
 Constructor, creates a wrapped output stream.
virtual ~FilterOutputStream ()
virtual void flush ()
 Flushes this stream by writing any buffered output to the underlying stream.
Exceptions
IOExceptionif an I/O error occurs.
The default implementation of this method does nothing.
virtual void close ()
 Closes this object and deallocates the appropriate resources.The object is generally no longer usable after calling close.
Exceptions
IOExceptionif an error occurs while closing.
The default implementation of this method does nothing.
virtual std::string toString () const
 Output a String representation of this object.The default version of this method just prints the Class Name.
Returns
a string representation of the object.

- Public Member Functions inherited from decaf::io::OutputStream
 OutputStream ()
virtual ~OutputStream ()
virtual void write (unsigned char c)
 Writes a single byte to the output stream.
virtual void write (const unsigned char *buffer, int size)
 Writes an array of bytes to the output stream.
virtual void write (const unsigned char *buffer, int size, int offset, int length)
 Writes an array of bytes to the output stream in order starting at buffer[offset] and proceeding until the number of bytes specified by the length argument are written or an error occurs.
virtual void lock ()
 Locks the object.
virtual bool tryLock ()
 Attempts to Lock the object, if the lock is already held by another thread than this method returns false.
virtual void unlock ()
 Unlocks the object.
virtual void wait ()
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void wait (long long millisecs)
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void wait (long long millisecs, int nanos)
 Waits on a signal from this object, which is generated by a call to Notify.
virtual void notify ()
 Signals a waiter on this object that it can now wake up and continue.
virtual void notifyAll ()
 Signals the waiters on this object that it can now wake up and continue.
- Public Member Functions inherited from decaf::io::Closeable
virtual ~Closeable ()
- Public Member Functions inherited from decaf::io::Flushable
virtual ~Flushable ()
- Public Member Functions inherited from decaf::util::concurrent::Synchronizable
virtual ~Synchronizable ()

Protected Member Functions

virtual void doWriteByte (unsigned char value)
virtual void doWriteArray (const unsigned char *buffer, int size)
virtual void doWriteArrayBounded (const unsigned char *buffer, int size, int offset, int length)
virtual bool isClosed () const

Protected Attributes

OutputStreamoutputStream
bool own
volatile bool closed

Detailed Description

This class is the superclass of all classes that filter output streams.

These streams sit on top of an already existing output stream (the underlying output stream) which it uses as its basic sink of data, but possibly transforming the data along the way or providing additional functionality.

The class FilterOutputStream itself simply overrides all methods of OutputStream with versions that pass all requests to the underlying output stream. Subclasses of FilterOutputStream may further override some of these methods as well as provide additional methods and fields.

Due to the lack of garbage collection in C++ a design decision was made to add a boolean parameter to the constructor indicating if the wrapped InputStream is owned by this object. That way creation of the underlying stream can occur in a Java like way. Ex:

DataOutputStream os = new DataOutputStream( new OutputStream(), true )

Constructor & Destructor Documentation

decaf::io::FilterOutputStream::FilterOutputStream ( OutputStream outputStream,
bool  own = false 
)

Constructor, creates a wrapped output stream.

Parameters
outputStreamthe OutputStream to wrap
ownIf true, this object will control the lifetime of the output stream that it encapsulates.
virtual decaf::io::FilterOutputStream::~FilterOutputStream ( )
virtual

Member Function Documentation

virtual void decaf::io::FilterOutputStream::close ( )
virtual

Closes this object and deallocates the appropriate resources.The object is generally no longer usable after calling close.

Exceptions
IOExceptionif an error occurs while closing.
The default implementation of this method does nothing.

The close method of FilterOutputStream calls its flush method, and then calls the close method of its underlying output stream.

Reimplemented from decaf::io::OutputStream.

Reimplemented in decaf::util::zip::DeflaterOutputStream.

virtual void decaf::io::FilterOutputStream::doWriteArray ( const unsigned char *  buffer,
int  size 
)
protectedvirtual

Reimplemented from decaf::io::OutputStream.

Reimplemented in decaf::io::BufferedOutputStream.

virtual void decaf::io::FilterOutputStream::doWriteArrayBounded ( const unsigned char *  buffer,
int  size,
int  offset,
int  length 
)
protectedvirtual
virtual void decaf::io::FilterOutputStream::doWriteByte ( unsigned char  value)
protectedvirtual
virtual void decaf::io::FilterOutputStream::flush ( )
virtual

Flushes this stream by writing any buffered output to the underlying stream.

Exceptions
IOExceptionif an I/O error occurs.
The default implementation of this method does nothing.

The flush method of FilterOutputStream calls the flush method of its underlying output stream.

Reimplemented from decaf::io::OutputStream.

Reimplemented in decaf::io::BufferedOutputStream.

virtual bool decaf::io::FilterOutputStream::isClosed ( ) const
protectedvirtual
Returns
true if this stream has been closed.
virtual std::string decaf::io::FilterOutputStream::toString ( ) const
virtual

Output a String representation of this object.The default version of this method just prints the Class Name.

Returns
a string representation of the object.

The toString method of FilterOutputStream calls the toString method of its underlying output stream.

Reimplemented from decaf::io::OutputStream.

Field Documentation

volatile bool decaf::io::FilterOutputStream::closed
protected
OutputStream* decaf::io::FilterOutputStream::outputStream
protected
bool decaf::io::FilterOutputStream::own
protected

The documentation for this class was generated from the following file: