reformat stream overview and provide a description hopefully correct, even if very short, for wxStreamBuffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -14,5 +14,7 @@
|
|||||||
wxWidgets has its own set of stream classes, as an alternative to often buggy
|
wxWidgets has its own set of stream classes, as an alternative to often buggy
|
||||||
standard stream libraries, and to provide enhanced functionality.
|
standard stream libraries, and to provide enhanced functionality.
|
||||||
|
|
||||||
|
Related overviews: @ref overview_stream
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@@ -29,43 +29,47 @@ Classes:
|
|||||||
|
|
||||||
Standard C++ streams can cause problems on several platforms: they work quite
|
Standard C++ streams can cause problems on several platforms: they work quite
|
||||||
well in most cases, but in the multi-threaded case, for example, they have many
|
well in most cases, but in the multi-threaded case, for example, they have many
|
||||||
problems. Some Borland compilers refuse to work at all with them and using
|
problems. Some Borland compilers refuse to work at all with them.
|
||||||
iostreams on Linux makes writing programs that are binary compatible across
|
@todo is this still true?
|
||||||
different Linux distributions, impossible.
|
|
||||||
|
|
||||||
Therefore, wxStreams have been added to wxWidgets so that applications can
|
Besides, using @c std::iostream on Linux makes impossible to write programs that are
|
||||||
|
binary compatible across different Linux distributions.
|
||||||
|
|
||||||
|
Therefore, wxStreams have been added to wxWidgets so that an applications can
|
||||||
reliably compile and run on all supported platforms without dependence on a
|
reliably compile and run on all supported platforms without dependence on a
|
||||||
particular release of libg++.
|
particular release of libg++.
|
||||||
|
|
||||||
wxStreams is divided in two main parts:
|
wxStream classes are divided in two main groups:
|
||||||
|
|
||||||
@li The core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream,
|
@li The core: wxStreamBase, wxStreamBuffer, wxInputStream, wxOutputStream,
|
||||||
wxFilterIn/OutputStream
|
wxFilterInputStream, wxFilterOutputStream
|
||||||
@li The "IO" classes: wxSocketIn/OutputStream, wxDataIn/OutputStream,
|
@li The "IO" classes: wxSocketInputStream, wxSocketOutputStream,
|
||||||
wxFileIn/OutputStream, ...
|
wxFileInputStream, wxFileOutputStream, ...
|
||||||
|
|
||||||
wxStreamBase is the base definition of a stream. It defines, for example, the
|
wxStreamBase is the base definition of a stream. It defines, for example, the
|
||||||
API of OnSysRead, OnSysWrite, OnSysSeek and OnSysTell. These functions are
|
API of OnSysRead(), OnSysWrite(), OnSysSeek() and OnSysTell(). These functions are
|
||||||
really implemented by the "IO" classes. wxInputStream and wxOutputStream
|
really implemented by the "IO" classes.
|
||||||
inherit from it.
|
wxInputStream and wxOutputStream classes inherit from wxStreamBase and provide
|
||||||
|
specialized methods for input and output.
|
||||||
|
|
||||||
wxStreamBuffer is a cache manager for wxStreamBase: it manages a stream buffer
|
wxStreamBuffer is a cache manager for wxStreamBase: it manages a stream buffer
|
||||||
linked to a stream. One stream can have multiple stream buffers but one stream
|
linked to a stream. One stream can have multiple stream buffers but one stream
|
||||||
have always one autoinitialized stream buffer.
|
has always one autoinitialized stream buffer.
|
||||||
|
|
||||||
wxInputStream is the base class for read-only streams. It implements Read,
|
wxInputStream is the base class for read-only streams. It implements Read(),
|
||||||
SeekI (I for Input), and all read or IO generic related functions.
|
SeekI() (I for Input), and all read or IO generic related functions.
|
||||||
wxOutputStream does the same thing but it is for write-only streams.
|
wxOutputStream does the same thing for write-only streams.
|
||||||
|
|
||||||
wxFilterIn/OutputStream is the base class definition for stream filtering.
|
wxFilterInputStream and wxFileterOutputStream are the base class definitions for
|
||||||
|
stream filtering.
|
||||||
Stream filtering means a stream which does no syscall but filters data which
|
Stream filtering means a stream which does no syscall but filters data which
|
||||||
are passed to it and then pass them to another stream. For example,
|
are passed to it and then pass them to another stream.
|
||||||
wxZLibInputStream is an inline stream decompressor.
|
For example, wxZLibInputStream is an inline stream decompressor.
|
||||||
|
|
||||||
The "IO" classes implements the specific parts of the stream. This could be
|
The "IO" classes implements the specific parts of the stream. This could be
|
||||||
nothing in the case of wxMemoryIn/OutputStream which bases itself on
|
nothing in the case of wxMemoryInputStream and wxMemoryOutputStream which base
|
||||||
wxStreamBuffer. This could also be a simple link to the a true syscall (for
|
themselves on wxStreamBuffer.
|
||||||
example read(...), write(...)).
|
This could also be a simple link to the true syscall (for example read(...), write(...)).
|
||||||
|
|
||||||
|
|
||||||
@section overview_stream_example Example
|
@section overview_stream_example Example
|
||||||
|
@@ -99,12 +99,16 @@ public:
|
|||||||
/**
|
/**
|
||||||
@class wxStreamBuffer
|
@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}
|
@library{wxbase}
|
||||||
@category{streams}
|
@category{streams}
|
||||||
|
|
||||||
@see wxStreamBase
|
@see wxStreamBase, @ref overview_stream
|
||||||
*/
|
*/
|
||||||
class wxStreamBuffer
|
class wxStreamBuffer
|
||||||
{
|
{
|
||||||
@@ -127,7 +131,9 @@ public:
|
|||||||
|
|
||||||
@code
|
@code
|
||||||
streambuffer.Read(...);
|
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
|
@endcode
|
||||||
|
|
||||||
@see SetBufferIO()
|
@see SetBufferIO()
|
||||||
|
Reference in New Issue
Block a user