#if wxUSE_STREAMS
+class WXDLLEXPORT wxTextInputStream;
+class WXDLLEXPORT wxTextOutputStream;
+
+typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&);
+typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
+
+WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
+
class WXDLLEXPORT wxTextInputStream {
public:
- wxTextInputStream(wxInputStream& s);
+ wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t"));
~wxTextInputStream();
wxUint32 Read32();
wxUint16 Read16();
- wxUint8 Read8();
- double ReadDouble();
- wxString ReadString();
+ wxUint8 Read8();
+ double ReadDouble();
+ wxString ReadString(); // deprecated use ReadLine or ReadWord instead
+ wxString ReadLine();
+ wxString ReadWord();
+
+ wxString GetStringSeparators() const { return m_separators;}
+ void SetStringSeparators(const wxString &c) { m_separators=c;}
// Operators
- wxTextInputStream& operator>>(wxString& line);
+ wxTextInputStream& operator>>(wxString& word);
wxTextInputStream& operator>>(wxChar& c);
wxTextInputStream& operator>>(wxInt16& i);
wxTextInputStream& operator>>(wxInt32& i);
wxTextInputStream& operator>>(wxUint32& i);
wxTextInputStream& operator>>(double& i);
wxTextInputStream& operator>>(float& f);
-
- protected:
- wxInputStream *m_input;
- wxChar NextNonWhiteSpace();
- void SkipIfEndOfLine( wxChar c );
+ wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); }
+
+ protected:
+ wxInputStream &m_input;
+ wxString m_separators;
+
+ bool EatEOL(const wxChar &c);
+ wxChar NextNonSeparators();
+ void SkipIfEndOfLine( wxChar c );
};
class WXDLLEXPORT wxTextOutputStream {
wxTextOutputStream& operator<<(double f);
wxTextOutputStream& operator<<(float f);
+ wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); }
+
protected:
- wxOutputStream *m_output;
+ wxOutputStream &m_output;
};
-wxTextOutputStream &endl( wxTextOutputStream &stream );
-
#endif
// wxUSE_STREAMS