* New wxStreams (to be documented), new classes: wxBufferedStreams,
wxTextStreams git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -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,18 @@ 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)
|
||||
{
|
||||
Write32(string.Length());
|
||||
Write((const wxChar *) string, string.Length()*sizeof(wxChar));
|
||||
m_output->Write((const wxChar *) string, string.Length()*sizeof(wxChar));
|
||||
}
|
||||
|
||||
// Must be at global scope for VC++ 5
|
||||
@@ -157,7 +211,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
|
||||
|
Reference in New Issue
Block a user