/////////////////////////////////////////////////////////////////////////////
// Name: stream.h
-// Purpose: topic overview
+// Purpose: stream classes overview
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
-@page overview_stream wxStreams Overview
+@page overview_stream Stream classes overview
Classes:
@li wxStreamBase
@li wxOutputStream
@li wxFilterInputStream
@li wxFilterOutputStream
+@li wxFileInputStream
+@li wxFileOutputStream
+@li wxTextInputStream
+@li wxTextOutputStream
+@li wxDataInputStream
+@li wxDataOutputStream
@li @ref overview_stream_intro
@li @ref overview_stream_example
@section overview_stream_intro Introduction
-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
-problems. Some Borland compilers refuse to work at all with them.
-@todo is this still true?
+@subsection overview_stream_intro_std wxWidgets and Standard Streams
-Besides, using @c std::iostream on Linux makes impossible to write programs that are
-binary compatible across different Linux distributions.
+wxWidgets provides its own set of stream classes in order to support platforms
+not providing standard C++ streams implementation and also to make it possible
+to provide binary versions of wxWidgets application not depending on any
+particular standard library version. The wxWidgets stream classes also provide
+some functionality not available in the standard library such as support for
+several compression formats and possibility to work with sockets or text
+controls (for output only in the latter case).
-Therefore, wxStreams have been added to wxWidgets so that an applications can
-reliably compile and run on all supported platforms without dependence on a
-particular release of libg++.
+Nevertheless wxWidgets programs can also use standard stream classes and are
+encouraged to do so if the above considerations don't apply. Moreover,
+wxStdInputStream and wxStdOutputStream classes are provided to provide a degree
+of interoperability between the two and make it possible to use any wxWidgets
+stream as a standard stream (the converse possibility to use a standard stream
+as a wxWidgets stream is planned for a future release).
+
+
+@subsection overview_stream_intro_overview Stream Classes
wxStream classes are divided in two main groups:
wxFilterInputStream, wxFilterOutputStream
@li The "IO" classes: wxSocketInputStream, wxSocketOutputStream,
wxFileInputStream, wxFileOutputStream, ...
+@li Classes for reading text or binary data from a particular stream
+ such as wxTextInputStream, wxTextOutputStream, wxDataInputStream
+ and wxDataOutputStream
wxStreamBase is the base definition of a stream. It defines, for example, the
API of OnSysRead(), OnSysWrite(), OnSysSeek() and OnSysTell(). These functions are