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:
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user