]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/variant.cpp
vsprintf() is ANSI so there is normally no need to test for it
[wxWidgets.git] / src / common / variant.cpp
index e259e9ef2f821267a5c8dc069dc78957959244ec..02fa4772739059b00a2f99665d15f07dec0241c2 100644 (file)
 #pragma hdrstop
 #endif
 
-#include <fstream.h>
+#if wxUSE_IOSTREAMH
+#   include <fstream.h>
+#else
+#   include <fstream>
+#   ifdef _MSC_VER
+        using namespace std;
+#   endif
+#endif
 
+#include "wx/stream.h"
 #include "wx/string.h"
 #include "wx/variant.h"
 
@@ -287,7 +295,9 @@ public:
     virtual bool Eq(wxVariantData& data) const;
     virtual bool Write(ostream& str) const;
     virtual bool Write(wxString& str) const;
+    virtual bool Write(wxOutputStream &str) const;
     virtual bool Read(istream& str);
+    virtual bool Read(wxInputStream& str);
     virtual bool Read(wxString& str);
     virtual wxString GetType() const { return "long"; };
 
@@ -323,6 +333,12 @@ bool wxVariantDataLong::Write(ostream& str) const
     return TRUE;
 }
 
+bool wxVariantDataLong::Write(wxOutputStream& str) const
+{
+    str << m_value;
+    return TRUE;
+}
+
 bool wxVariantDataLong::Write(wxString& str) const
 {
     str.Printf("%ld", m_value);
@@ -335,6 +351,12 @@ bool wxVariantDataLong::Read(istream& str)
     return TRUE;
 }
 
+bool wxVariantDataLong::Read(wxInputStream& str)
+{
+   str >> m_value;
+   return TRUE;
+}
+
 bool wxVariantDataLong::Read(wxString& str)
 {
     m_value = atol((const char*) str);
@@ -359,7 +381,9 @@ public:
     virtual bool Eq(wxVariantData& data) const;
     virtual bool Write(ostream& str) const;
     virtual bool Write(wxString& str) const;
+    virtual bool Write(wxOutputStream &str) const;
     virtual bool Read(istream& str);
+    virtual bool Read(wxInputStream& str);
     virtual bool Read(wxString& str);
     virtual wxString GetType() const { return "double"; };
 
@@ -395,6 +419,12 @@ bool wxVariantDataReal::Write(ostream& str) const
     return TRUE;
 }
 
+bool wxVariantDataReal::Write(wxOutputStream& str) const
+{
+    str << m_value;
+    return TRUE;
+}
+
 bool wxVariantDataReal::Write(wxString& str) const
 {
     str.Printf("%.4f", m_value);
@@ -407,6 +437,12 @@ bool wxVariantDataReal::Read(istream& str)
     return TRUE;
 }
 
+bool wxVariantDataReal::Read(wxInputStream& str)
+{
+    str >> (float&)m_value;
+    return TRUE;
+}
+
 bool wxVariantDataReal::Read(wxString& str)
 {
     m_value = atof((const char*) str);
@@ -430,8 +466,10 @@ public:
     virtual void Copy(wxVariantData& data);
     virtual bool Eq(wxVariantData& data) const;
     virtual bool Write(ostream& str) const;
+    virtual bool Write(wxOutputStream& str) const;
     virtual bool Write(wxString& str) const;
     virtual bool Read(istream& str);
+    virtual bool Read(wxInputStream& str);
     virtual bool Read(wxString& str);
     virtual wxString GetType() const { return "bool"; };
 
@@ -467,6 +505,12 @@ bool wxVariantDataBool::Write(ostream& str) const
     return TRUE;
 }
 
+bool wxVariantDataBool::Write(wxOutputStream& str) const
+{
+    str << (char)m_value;
+    return TRUE;
+}
+
 bool wxVariantDataBool::Write(wxString& str) const
 {
     str.Printf("%d", (int) m_value);
@@ -480,6 +524,12 @@ bool wxVariantDataBool::Read(istream& WXUNUSED(str))
     return FALSE;
 }
 
+bool wxVariantDataBool::Read(wxInputStream& str)
+{
+    str >> (char&)m_value;
+    return TRUE;
+}
+
 bool wxVariantDataBool::Read(wxString& str)
 {
     m_value = (atol((const char*) str) != 0);
@@ -503,8 +553,10 @@ public:
     virtual void Copy(wxVariantData& data);
     virtual bool Eq(wxVariantData& data) const;
     virtual bool Write(ostream& str) const;
+    virtual bool Write(wxOutputStream& str) const;
     virtual bool Write(wxString& str) const;
     virtual bool Read(istream& str);
+    virtual bool Read(wxInputStream& str);
     virtual bool Read(wxString& str);
     virtual wxString GetType() const { return "char"; };
 
@@ -540,6 +592,12 @@ bool wxVariantDataChar::Write(ostream& str) const
     return TRUE;
 }
 
+bool wxVariantDataChar::Write(wxOutputStream& str) const
+{
+    str << m_value;
+    return TRUE;
+}
+
 bool wxVariantDataChar::Write(wxString& str) const
 {
     str.Printf("%c", m_value);
@@ -553,6 +611,12 @@ bool wxVariantDataChar::Read(istream& WXUNUSED(str))
     return FALSE;
 }
 
+bool wxVariantDataChar::Read(wxInputStream& str)
+{
+    str >> m_value;
+    return TRUE;
+}
+
 bool wxVariantDataChar::Read(wxString& str)
 {
     m_value = str[(size_t)0];
@@ -576,8 +640,10 @@ public:
     virtual void Copy(wxVariantData& data);
     virtual bool Eq(wxVariantData& data) const;
     virtual bool Write(ostream& str) const;
+    virtual bool Write(wxOutputStream& str) const;
     virtual bool Write(wxString& str) const;
     virtual bool Read(istream& str);
+    virtual bool Read(wxInputStream& str);
     virtual bool Read(wxString& str);
     virtual wxString GetType() const { return "string"; };
 
@@ -609,6 +675,12 @@ bool wxVariantDataString::Write(ostream& str) const
     return TRUE;
 }
 
+bool wxVariantDataString::Write(wxOutputStream& str) const
+{
+    str << (const char*) m_value;
+    return TRUE;
+}
+
 bool wxVariantDataString::Write(wxString& str) const
 {
     str = m_value;
@@ -621,6 +693,12 @@ bool wxVariantDataString::Read(istream& str)
     return TRUE;
 }
 
+bool wxVariantDataString::Read(wxInputStream& str)
+{
+    str >> m_value;
+    return TRUE;
+}
+
 bool wxVariantDataString::Read(wxString& str)
 {
     m_value = str;