X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cf44735628cecb0326b953c4872260f223fc8769..cba5a276e4821a0ae7d1e7a435d6aab38baa0a9f:/include/wx/datstrm.h?ds=sidebyside diff --git a/include/wx/datstrm.h b/include/wx/datstrm.h index 169c86b627..dc6e3f51a6 100644 --- a/include/wx/datstrm.h +++ b/include/wx/datstrm.h @@ -9,38 +9,106 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// -#ifndef __DATSTREAMH__ -#define __DATSTREAMH__ +#ifndef _WX_DATSTREAM_H_ +#define _WX_DATSTREAM_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "datstrm.h" #endif -#include "wx/wx.h" +#include "wx/stream.h" +#include "wx/longlong.h" +#include "wx/strconv.h" -class wxDataStream { +#if wxUSE_STREAMS + +class WXDLLEXPORT wxDataInputStream +{ +public: +#if wxUSE_UNICODE + wxDataInputStream(wxInputStream& s, wxMBConv& conv = wxConvUTF8); +#else + wxDataInputStream(wxInputStream& s); +#endif + ~wxDataInputStream(); + + bool IsOk() { return m_input->IsOk(); } + + wxUint64 Read64(); + wxUint32 Read32(); + wxUint16 Read16(); + wxUint8 Read8(); + double ReadDouble(); + wxString ReadString(); + + wxDataInputStream& operator>>(wxString& s); + wxDataInputStream& operator>>(wxInt8& c); + wxDataInputStream& operator>>(wxInt16& i); + wxDataInputStream& operator>>(wxInt32& i); + wxDataInputStream& operator>>(wxUint8& c); + wxDataInputStream& operator>>(wxUint16& i); + wxDataInputStream& operator>>(wxUint32& i); + wxDataInputStream& operator>>(wxUint64& i); + wxDataInputStream& operator>>(double& i); + wxDataInputStream& operator>>(float& f); + + void BigEndianOrdered(bool be_order) { m_be_order = be_order; } + +protected: + wxInputStream *m_input; + bool m_be_order; +#if wxUSE_UNICODE + wxMBConv& m_conv; +#endif + + DECLARE_NO_COPY_CLASS(wxDataInputStream) +}; + +class WXDLLEXPORT wxDataOutputStream +{ public: - wxDataStream(iostream& s); - wxDataStream(istream& s); - wxDataStream(ostream& s); - - virtual ~wxDataStream(); - - unsigned long Read32(); - unsigned short Read16(); - unsigned char Read8(); - double ReadDouble(); - wxString ReadLine(); - - void Write32(unsigned long i); - void Write16(unsigned short i); - void Write8(unsigned char i); - void WriteDouble(double d); - void WriteLine(const wxString& line); +#if wxUSE_UNICODE + wxDataOutputStream(wxOutputStream& s, wxMBConv& conv = wxConvUTF8); +#else + wxDataOutputStream(wxOutputStream& s); +#endif + ~wxDataOutputStream(); + + bool IsOk() { return m_output->IsOk(); } + + void Write64(wxUint64 i); + void Write32(wxUint32 i); + void Write16(wxUint16 i); + void Write8(wxUint8 i); + void WriteDouble(double d); + void WriteString(const wxString& string); + + wxDataOutputStream& operator<<(const wxChar *string); + wxDataOutputStream& operator<<(const wxString& string); + wxDataOutputStream& operator<<(wxInt8 c); + wxDataOutputStream& operator<<(wxInt16 i); + wxDataOutputStream& operator<<(wxInt32 i); + wxDataOutputStream& operator<<(wxUint8 c); + wxDataOutputStream& operator<<(wxUint16 i); + wxDataOutputStream& operator<<(wxUint32 i); + wxDataOutputStream& operator<<(wxUint64 i); + wxDataOutputStream& operator<<(double f); + wxDataOutputStream& operator<<(float f); + + void BigEndianOrdered(bool be_order) { m_be_order = be_order; } + protected: - istream *m_istream; - ostream *m_ostream; + wxOutputStream *m_output; + bool m_be_order; +#if wxUSE_UNICODE + wxMBConv& m_conv; +#endif + + DECLARE_NO_COPY_CLASS(wxDataOutputStream) }; #endif - // __HELPBASEH__ + // wxUSE_STREAMS + +#endif + // _WX_DATSTREAM_H_