/**
@class wxStreamBuffer
- @todo WRITE A DESCRIPTION
+ wxStreamBuffer is a cache manager for wxStreamBase: it manages a stream buffer
+ linked to a stream.
+
+ Each stream always has one autoinitialized stream buffer, but you may
+ attach more of them to the same stream.
@library{wxbase}
@category{streams}
- @see wxStreamBase
+ @see wxStreamBase, @ref overview_stream
*/
class wxStreamBuffer
{
@code
streambuffer.Read(...);
- streambuffer2.Read(...); // This call erases previous error messages set by 'streambuffer'
+ streambuffer2.Read(...);
+ // This call erases previous error messages set by 'streambuffer'
+ // assuming that both instances are stream buffers for the same stream
@endcode
@see SetBufferIO()
@code
factory = wxFilterClassFactory::Find(filename, wxSTREAM_FILEEXT);
if (factory)
- stream = factory-NewStream(new wxFFileInputStream(filename));
+ stream = factory->NewStream(new wxFFileInputStream(filename));
@endcode
wxFilterClassFactory::Find can also search for a factory by MIME type,
GetFirst()/GetNext() return a pointer to a factory or @NULL if no more
are available. They do not give away ownership of the factory.
*/
- static const wxFilterClassFactory* GetFirst() const;
+ static const wxFilterClassFactory* GetFirst();
const wxFilterClassFactory* GetNext() const;
//@}
If the parent stream is passed as a pointer then the new filter stream
takes ownership of it. If it is passed by reference then it does not.
*/
- wxFilterInputStream* NewStream(wxInputStream& stream) const;
- wxFilterOutputStream* NewStream(wxOutputStream& stream) const;
- wxFilterInputStream* NewStream(wxInputStream* stream) const;
- wxFilterOutputStream* NewStream(wxOutputStream* stream) const;
+ virtual wxFilterInputStream* NewStream(wxInputStream& stream) const = 0;
+ virtual wxFilterOutputStream* NewStream(wxOutputStream& stream) const = 0;
+ virtual wxFilterInputStream* NewStream(wxInputStream* stream) const = 0;
+ virtual wxFilterOutputStream* NewStream(wxOutputStream* stream) const = 0;
//@}
/**