]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/datstrm.cpp
More _T() in asserts...
[wxWidgets.git] / src / common / datstrm.cpp
index 771d9c32d2cb0b637b93e83179ba3268ad745bd0..85f80d95073dcb93a10d5923852651a7ffb922c8 100644 (file)
@@ -29,7 +29,7 @@
 // ---------------------------------------------------------------------------
 
 wxDataInputStream::wxDataInputStream(wxInputStream& s)
-  : wxFilterInputStream(s)
+  : m_input(&s)
 {
 }
 
@@ -41,7 +41,7 @@ wxUint32 wxDataInputStream::Read32()
 {
   char buf[4];
 
-  Read(buf, 4);
+  m_input->Read(buf, 4);
 
   return (wxUint32)buf[0] |
          ((wxUint32)buf[1] << 8) |
@@ -53,7 +53,7 @@ wxUint16 wxDataInputStream::Read16()
 {
   char buf[2];
 
-  Read(buf, 2);
+  m_input->Read(buf, 2);
 
   return (wxUint16)buf[0] |
          ((wxUint16)buf[1] << 8);
@@ -63,7 +63,7 @@ wxUint8 wxDataInputStream::Read8()
 {
   wxUint8 buf;
 
-  Read((char *)&buf, 1);
+  m_input->Read((char *)&buf, 1);
   return (wxUint8)buf;
 }
 
@@ -75,7 +75,7 @@ double wxDataInputStream::ReadDouble()
 #if wxUSE_APPLE_IEEE
   char buf[10];
 
-  Read(buf, 10);
+  m_input->Read(buf, 10);
   return ConvertFromIeeeExtended((unsigned char *)buf);
 #else
   return 0.0;
@@ -91,7 +91,7 @@ wxString wxDataInputStream::ReadString()
   len = Read32();
   string = new char[len+1];
 
-  Read(string, len);
+  m_input->Read(string, len);
 
   string[len] = 0;
   wx_string = string;
@@ -99,13 +99,67 @@ wxString wxDataInputStream::ReadString()
 
   return wx_string;
 }
+  
+wxDataInputStream& wxDataInputStream::operator>>(wxString& s)
+{
+  s = ReadString();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxInt8& c)
+{
+  c = (wxInt8)Read8();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxInt16& i)
+{
+  i = (wxInt16)Read16();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxInt32& i)
+{
+  i = (wxInt32)Read32();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxUint8& c)
+{
+  c = Read8();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxUint16& i)
+{
+  i = Read16();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(wxUint32& i)
+{
+  i = Read32();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(double& i)
+{
+  i = ReadDouble();
+  return *this;
+}
+
+wxDataInputStream& wxDataInputStream::operator>>(float& f)
+{
+  f = (float)ReadDouble();
+  return *this;
+}
 
 // ---------------------------------------------------------------------------
 // wxDataOutputStream
 // ---------------------------------------------------------------------------
 
 wxDataOutputStream::wxDataOutputStream(wxOutputStream& s)
: wxFilterOutputStream(s)
 : m_output(&s)
 {
 }
 
@@ -121,7 +175,7 @@ void wxDataOutputStream::Write32(wxUint32 i)
   buf[1] = (i >> 8) & 0xff;
   buf[2] = (i >> 16) & 0xff;
   buf[3] = (i >> 24) & 0xff;
-  Write(buf, 4);
+  m_output->Write(buf, 4);
 }
 
 void wxDataOutputStream::Write16(wxUint16 i)
@@ -130,18 +184,19 @@ void wxDataOutputStream::Write16(wxUint16 i)
 
   buf[0] = i & 0xff;
   buf[1] = (i >> 8) & 0xff;
-  Write(buf, 2);
+  m_output->Write(buf, 2);
 }
 
 void wxDataOutputStream::Write8(wxUint8 i)
 {
-  Write(&i, 1);
+  m_output->Write(&i, 1);
 }
 
 void wxDataOutputStream::WriteString(const wxString& string)
 {
+  const wxWX2MBbuf buf = string.mb_str();
   Write32(string.Length());
-  Write((const wxChar *) string, string.Length()*sizeof(wxChar));
+  m_output->Write(buf, string.Len());
 }
 
 // Must be at global scope for VC++ 5
@@ -157,7 +212,68 @@ void wxDataOutputStream::WriteDouble(double d)
 #  pragma warning "wxDataOutputStream::WriteDouble() not using IeeeExtended - will not work!"
  buf[0] = '\0';
 #endif
-  Write(buf, 10);
+  m_output->Write(buf, 10);
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(const wxChar *string)
+{
+  Write32(wxStrlen(string));
+  m_output->Write((const char *)string, wxStrlen(string)*sizeof(wxChar));
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxString& string)
+{
+  WriteString(string);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxInt8 c)
+{
+  Write8((wxUint8)c);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxInt16 i)
+{
+  Write16((wxUint16)i);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxInt32 i)
+{
+  Write32((wxUint32)i);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxUint8 c)
+{
+  Write8(c);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxUint16 i)
+{
+  Write16(i);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(wxUint32 i)
+{
+  Write32(i);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(double f)
+{
+  WriteDouble(f);
+  return *this;
+}
+
+wxDataOutputStream& wxDataOutputStream::operator<<(float f)
+{
+  WriteDouble((double)f);
+  return *this;
 }
 
 #endif