- added event sink argument to wxEvtHandler::Connect()
- added support for POST method and alt ports to wxHTTP (Roger Chickering)
- added wxSocket::IPAddress() (Chris Mellon)
+- wxDataStreams can read/write many elements at once (Mickael Gilabert)
wxBase:
Reads a single byte from the stream.
+\func{void}{Read8}{\param{wxUint8 *}{buffer}, \param{size\_t }{size}}
+
+Reads bytes from the stream in a specified buffer. The amount of
+bytes to read is specified by the {\it size} variable.
+
\membersection{wxDataInputStream::Read16}
\func{wxUint16}{Read16}{\void}
Reads a 16 bit unsigned integer from the stream.
+\func{void}{Read16}{\param{wxUint16 *}{buffer}, \param{size\_t }{size}}
+
+Reads 16 bit unsigned integers from the stream in a specified buffer. the
+amount of 16 bit unsigned integer to read is specified by the {\it size} variable.
+
\membersection{wxDataInputStream::Read32}
\func{wxUint32}{Read32}{\void}
Reads a 32 bit unsigned integer from the stream.
+\func{void}{Read32}{\param{wxUint32 *}{buffer}, \param{size\_t }{size}}
+
+Reads 32 bit unsigned integers from the stream in a specified buffer. the amount of
+32 bit unsigned integer to read is specified by the {\it size} variable.
+
\membersection{wxDataInputStream::Read64}
\func{wxUint64}{Read64}{\void}
Reads a 64 bit unsigned integer from the stream.
+\func{void}{Read64}{\param{wxUint64 *}{buffer}, \param{size\_t }{size}}
+
+Reads 64 bit unsigned integers from the stream in a specified buffer. the amount of
+64 bit unsigned integer to read is specified by the {\it size} variable.
+
\membersection{wxDataInputStream::ReadDouble}
\func{double}{ReadDouble}{\void}
Reads a double (IEEE encoded) from the stream.
+\func{void}{ReadDouble}{\param{double *}{buffer}, \param{size\_t }{size}}
+
+Reads double data (IEEE encoded) from the stream in a specified buffer. the amount of
+double to read is specified by the {\it size} variable.
+
\membersection{wxDataInputStream::ReadString}\label{wxdatainputstreamreadstring}
\func{wxString}{ReadString}{\void}
responsible for using the same convertor as when writing the stream.
See also \helpref{wxDataOutputStream::WriteString}{wxdataoutputstreamwritestring}.
-
Writes the single byte {\it i8} to the stream.
+\func{void}{Write8}{\param{const wxUint8 *}{buffer}, \param{size\_t }{size}}
+
+Writes an array of bytes to the stream. The amount of bytes to write is
+specified with the {\it size} variable.
+
\membersection{wxDataOutputStream::Write16}
\func{void}{Write16}{{\param wxUint16 }{i16}}
Writes the 16 bit unsigned integer {\it i16} to the stream.
+\func{void}{Write16}{\param{const wxUint16 *}{buffer}, \param{size\_t }{size}}
+
+Writes an array of 16 bit unsigned integer to the stream. The amount of
+16 bit unsigned integer to write is specified with the {\it size} variable.
+
\membersection{wxDataOutputStream::Write32}
\func{void}{Write32}{{\param wxUint32 }{i32}}
Writes the 32 bit unsigned integer {\it i32} to the stream.
+\func{void}{Write32}{\param{const wxUint32 *}{buffer}, \param{size\_t }{size}}
+
+Writes an array of 32 bit unsigned integer to the stream. The amount of
+32 bit unsigned integer to write is specified with the {\it size} variable.
+
\membersection{wxDataOutputStream::Write64}
\func{void}{Write64}{{\param wxUint64 }{i64}}
Writes the 64 bit unsigned integer {\it i64} to the stream.
+\func{void}{Write64}{\param{const wxUint64 *}{buffer}, \param{size\_t }{size}}
+
+Writes an array of 64 bit unsigned integer to the stream. The amount of
+64 bit unsigned integer to write is specified with the {\it size} variable.
+
\membersection{wxDataOutputStream::WriteDouble}
\func{void}{WriteDouble}{{\param double }{f}}
Writes the double {\it f} to the stream using the IEEE format.
+\func{void}{WriteDouble}{\param{const double *}{buffer}, \param{size\_t }{size}}
+
+Writes an array of double to the stream. The amount of double to write is
+specified with the {\it size} variable.
+
\membersection{wxDataOutputStream::WriteString}\label{wxdataoutputstreamwritestring}
\func{void}{WriteString}{{\param const wxString\&}{string}}
// Name: datstrm.h
// Purpose: Data stream classes
// Author: Guilhem Lavaux
-// Modified by:
+// Modified by: Mickael Gilabert
// Created: 28/06/1998
// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
double ReadDouble();
wxString ReadString();
+ void Read64(wxUint64 *buffer, size_t size);
+ void Read32(wxUint32 *buffer, size_t size);
+ void Read16(wxUint16 *buffer, size_t size);
+ void Read8(wxUint8 *buffer, size_t size);
+ void ReadDouble(double *buffer, size_t size);
+
wxDataInputStream& operator>>(wxString& s);
wxDataInputStream& operator>>(wxInt8& c);
wxDataInputStream& operator>>(wxInt16& i);
void WriteDouble(double d);
void WriteString(const wxString& string);
+ void Write64(const wxUint64 *buffer, size_t size);
+ void Write32(const wxUint32 *buffer, size_t size);
+ void Write16(const wxUint16 *buffer, size_t size);
+ void Write8(const wxUint8 *buffer, size_t size);
+ void WriteDouble(const double *buffer, size_t size);
+
wxDataOutputStream& operator<<(const wxChar *string);
wxDataOutputStream& operator<<(const wxString& string);
wxDataOutputStream& operator<<(wxInt8 c);
// Name: datstrm.cpp
// Purpose: Data stream classes
// Author: Guilhem Lavaux
-// Modified by:
+// Modified by: Mickael Gilabert
// Created: 28/06/98
// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
return wxEmptyString;
}
+void wxDataInputStream::Read64(wxUint64 *buffer, size_t size)
+{
+ m_input->Read(buffer, size * 8);
+
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint64 v = wxUINT64_SWAP_ON_LE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+ else
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint64 v = wxUINT64_SWAP_ON_BE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+}
+
+void wxDataInputStream::Read32(wxUint32 *buffer, size_t size)
+{
+ m_input->Read(buffer, size * 4);
+
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint32 v = wxUINT32_SWAP_ON_LE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+else
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint32 v = wxUINT32_SWAP_ON_BE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+}
+
+void wxDataInputStream::Read16(wxUint16 *buffer, size_t size)
+{
+ m_input->Read(buffer, size * 2);
+
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint16 v = wxUINT16_SWAP_ON_LE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+ else
+ {
+ for (wxUint32 i=0; i<size; i++)
+ {
+ wxUint16 v = wxUINT16_SWAP_ON_BE(*buffer);
+ *(buffer++) = v;
+ }
+ }
+}
+
+void wxDataInputStream::Read8(wxUint8 *buffer, size_t size)
+{
+ m_input->Read(buffer, size);
+}
+
+void wxDataInputStream::ReadDouble(double *buffer, size_t size)
+{
+ for (wxUint32 i=0; i<size; i++)
+ {
+ *(buffer++) = ReadDouble();
+ }
+}
+
wxDataInputStream& wxDataInputStream::operator>>(wxString& s)
{
s = ReadString();
m_output->Write(buf, 10);
}
+void wxDataOutputStream::Write64(const wxUint64 *buffer, size_t size)
+{
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint64 i64 = wxUINT64_SWAP_ON_LE(*buffer);
+ buffer++;
+ m_output->Write(&i64, 8);
+ }
+ }
+ else
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint64 i64 = wxUINT64_SWAP_ON_BE(*buffer);
+ buffer++;
+ m_output->Write(&i64, 8);
+ }
+ }
+}
+
+void wxDataOutputStream::Write32(const wxUint32 *buffer, size_t size)
+{
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint32 i32 = wxUINT32_SWAP_ON_LE(*buffer);
+ buffer++;
+ m_output->Write(&i32, 4);
+ }
+ }
+ else
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint32 i32 = wxUINT32_SWAP_ON_BE(*buffer);
+ buffer++;
+ m_output->Write(&i32, 4);
+ }
+ }
+}
+
+void wxDataOutputStream::Write16(const wxUint16 *buffer, size_t size)
+{
+ if (m_be_order)
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint16 i16 = wxUINT16_SWAP_ON_LE(*buffer);
+ buffer++;
+ m_output->Write(&i16, 2);
+ }
+ }
+ else
+ {
+ for (wxUint32 i=0; i<size ;i++)
+ {
+ wxUint16 i16 = wxUINT16_SWAP_ON_BE(*buffer);
+ buffer++;
+ m_output->Write(&i16, 2);
+ }
+ }
+}
+
+void wxDataOutputStream::Write8(const wxUint8 *buffer, size_t size)
+{
+ m_output->Write(buffer, size);
+}
+
+void wxDataOutputStream::WriteDouble(const double *buffer, size_t size)
+{
+ for (wxUint32 i=0; i<size; i++)
+ {
+ WriteDouble(*(buffer++));
+ }
+}
+
wxDataOutputStream& wxDataOutputStream::operator<<(const wxChar *string)
{
Write32(wxStrlen(string));