Added wxStream but I haven't tested them.

Modified wxDataStream.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1998-07-12 15:16:09 +00:00
parent 23f641681f
commit 3d4c6a214a
10 changed files with 378 additions and 54 deletions

View File

@@ -26,36 +26,23 @@
#include "wx/datstrm.h"
wxDataStream::wxDataStream(istream& s)
{
m_istream = &s;
m_ostream = NULL;
}
wxDataStream::wxDataStream(ostream& s)
{
m_istream = NULL;
m_ostream = &s;
}
wxDataStream::wxDataStream(iostream& s)
{
m_istream = &s;
m_ostream = &s;
}
wxDataStream::~wxDataStream()
wxDataInputStream::wxDataInputStream(wxInputStream& s)
: wxFilterInputStream(s)
{
}
unsigned long wxDataStream::Read32()
wxDataInputStream::~wxDataInputStream()
{
}
unsigned long wxDataInputStream::Read32()
{
char buf[4];
if (!m_istream)
return 0;
m_istream->read(buf, 4);
Read(buf, 4);
return (unsigned long)buf[0] |
((unsigned long)buf[1] << 8) |
@@ -63,34 +50,34 @@ unsigned long wxDataStream::Read32()
((unsigned long)buf[3] << 24);
}
unsigned short wxDataStream::Read16()
unsigned short wxDataInputStream::Read16()
{
char buf[2];
if (!m_istream)
return 0;
m_istream->read(buf, 2);
Read(buf, 2);
return (unsigned short)buf[0] |
((unsigned short)buf[1] << 8);
}
unsigned char wxDataStream::Read8()
unsigned char wxDataInputStream::Read8()
{
char buf;
if (!m_istream)
return 0;
m_istream->read(&buf, 1);
Read(&buf, 1);
return (unsigned char)buf;
}
// Must be at global scope for VC++ 5
extern "C" double ConvertFromIeeeExtended(const unsigned char *bytes);
double wxDataStream::ReadDouble()
double wxDataInputStream::ReadDouble()
{
#if USE_APPLE_IEEE
char buf[10];
@@ -98,25 +85,25 @@ double wxDataStream::ReadDouble()
if (!m_istream)
return 0.0;
m_istream->read(buf, 10);
Read(buf, 10);
return ConvertFromIeeeExtended((unsigned char *)buf);
#else
return 0.0;
#endif
}
wxString wxDataStream::ReadLine()
wxString wxDataInputStream::ReadLine()
{
char i_strg[255];
if (!m_istream)
return "";
m_istream->getline(i_strg, 255);
// TODO: Implement ReadLine
return i_strg;
}
wxString wxDataStream::ReadString()
wxString wxDataInputStream::ReadString()
{
wxString wx_string;
char *string;
@@ -128,7 +115,7 @@ wxString wxDataStream::ReadString()
len = Read32();
string = new char[len+1];
m_istream->read(string, len);
Read(string, len);
string[len] = 0;
wx_string = string;
@@ -137,7 +124,12 @@ wxString wxDataStream::ReadString()
return wx_string;
}
void wxDataStream::Write32(unsigned long i)
wxDataOutputStream::wxDataOutputStream(wxOutputStream& s)
: wxFilterOutputStream(s)
{
}
void wxDataOutputStream::Write32(unsigned long i)
{
char buf[4];
@@ -148,10 +140,10 @@ void wxDataStream::Write32(unsigned long i)
buf[1] = (i >> 8) & 0xff;
buf[2] = (i >> 16) & 0xff;
buf[3] = (i >> 24) & 0xff;
m_ostream->write(buf, 4);
Write(buf, 4);
}
void wxDataStream::Write16(unsigned short i)
void wxDataOutputStream::Write16(unsigned short i)
{
char buf[2];
@@ -160,18 +152,18 @@ void wxDataStream::Write16(unsigned short i)
buf[0] = i & 0xff;
buf[1] = (i >> 8) & 0xff;
m_ostream->write(buf, 2);
Write(buf, 2);
}
void wxDataStream::Write8(unsigned char i)
void wxDataOutputStream::Write8(unsigned char i)
{
if (!m_ostream)
return;
m_ostream->write(&i, 1);
Write(&i, 1);
}
void wxDataStream::WriteLine(const wxString& line)
void wxDataOutputStream::WriteLine(const wxString& line)
{
#ifdef __WXMSW__
wxString tmp_string = line + "\r\n";
@@ -182,22 +174,22 @@ void wxDataStream::WriteLine(const wxString& line)
if (!m_ostream)
return;
m_ostream->write((const char *) tmp_string, tmp_string.Length());
Write((const char *) tmp_string, tmp_string.Length());
}
void wxDataStream::WriteString(const wxString& string)
void wxDataOutputStream::WriteString(const wxString& string)
{
if (!m_ostream)
return;
Write32(string.Length());
m_ostream->write((const char *) string, string.Length());
Write((const char *) string, string.Length());
}
// Must be at global scope for VC++ 5
extern "C" void ConvertToIeeeExtended(double num, unsigned char *bytes);
void wxDataStream::WriteDouble(double d)
void wxDataOutputStream::WriteDouble(double d)
{
char buf[10];
@@ -210,5 +202,5 @@ void wxDataStream::WriteDouble(double d)
# pragma warning "wxDataStream::WriteDouble() not using IeeeExtended - will not work!"
buf[0] = '\0';
#endif
m_ostream->write(buf, 10);
Write(buf, 10);
}