/////////////////////////////////////////////////////////////////////////////
-// Name: src/common/fstream.cpp
+// Name: src/common/wfstream.cpp
// Purpose: "File stream" classes
// Author: Julian Smart
// Modified by:
// Created: 11/07/98
-// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
bool wxFileInputStream::IsOk() const
{
- return wxStreamBase::IsOk() && m_file->IsOpened();
+ return wxInputStream::IsOk() && m_file->IsOpened();
}
// ----------------------------------------------------------------------------
bool wxFileOutputStream::IsOk() const
{
- return wxStreamBase::IsOk() && m_file->IsOpened();
+ return wxOutputStream::IsOk() && m_file->IsOpened();
}
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
wxFileStream::wxFileStream(const wxString& fileName)
- : wxFileInputStream(fileName)
+ : wxFileInputStream(),
+ wxFileOutputStream()
{
- wxFileOutputStream::m_file = wxFileInputStream::m_file;
+ wxFileOutputStream::m_file =
+ wxFileInputStream::m_file = new wxFile(fileName, wxFile::read_write);
+
+ // this is a bit ugly as streams are symmetric but we still have to delete
+ // the file we created above exactly once so we decide to (arbitrarily) do
+ // it in wxFileInputStream
+ wxFileInputStream::m_file_destroy = true;
}
bool wxFileStream::IsOk() const
{
- return wxFileOutputStream::IsOk() && wxFileInputStream::m_file->IsOpened();
+ return wxFileOutputStream::IsOk() && wxFileInputStream::IsOk();
}
-#endif //wxUSE_FILE
+#endif // wxUSE_FILE
#if wxUSE_FFILE
// wxFFileStream
// ----------------------------------------------------------------------------
-wxFFileStream::wxFFileStream(const wxString& fileName)
- : wxFFileInputStream(fileName)
+wxFFileStream::wxFFileStream(const wxString& fileName, const wxString& mode)
+ : wxFFileInputStream(),
+ wxFFileOutputStream()
+{
+ wxASSERT_MSG( mode.find_first_of('+') != wxString::npos,
+ "must be opened in read-write mode for this class to work" );
+
+ wxFFileOutputStream::m_file =
+ wxFFileInputStream::m_file = new wxFFile(fileName, mode);
+
+ // see comment in wxFileStream ctor
+ wxFFileInputStream::m_file_destroy = true;
+}
+
+bool wxFFileStream::IsOk() const
{
- wxFFileOutputStream::m_file = wxFFileInputStream::m_file;
+ return wxFFileOutputStream::IsOk() && wxFFileInputStream::IsOk();
}
#endif //wxUSE_FFILE