wxFileStream(const wxString& fileName);
virtual bool IsOk() const;
+ // override (some) virtual functions inherited from both classes to resolve
+ // ambiguities (this wouldn't be necessary if wxStreamBase were a virtual
+ // base class but it isn't)
+
+ virtual bool IsSeekable() const
+ {
+ return wxFileInputStream::IsSeekable();
+ }
+
+ virtual wxFileOffset GetLength() const
+ {
+ return wxFileInputStream::GetLength();
+ }
+
+protected:
+ virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode)
+ {
+ return wxFileInputStream::OnSysSeek(pos, mode);
+ }
+
+ virtual wxFileOffset OnSysTell() const
+ {
+ return wxFileInputStream::OnSysTell();
+ }
+
private:
wxDECLARE_NO_COPY_CLASS(wxFileStream);
};
{
public:
wxFFileStream(const wxString& fileName, const wxString& mode = "w+b");
+
+ // override some virtual functions to resolve ambiguities, just as in
+ // wxFileStream
+
virtual bool IsOk() const;
+ virtual bool IsSeekable() const
+ {
+ return wxFFileInputStream::IsSeekable();
+ }
+
+ virtual wxFileOffset GetLength() const
+ {
+ return wxFFileInputStream::GetLength();
+ }
+
+protected:
+ virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode)
+ {
+ return wxFFileInputStream::OnSysSeek(pos, mode);
+ }
+
+ virtual wxFileOffset OnSysTell() const
+ {
+ return wxFFileInputStream::OnSysTell();
+ }
+
private:
wxDECLARE_NO_COPY_CLASS(wxFFileStream);
};
public:
/**
Creates a new file with @a ofileName name and initializes the stream in write-only mode.
-
+
@warning
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
*/
public:
/**
Opens the specified file using its @a ifileName name in read-only mode.
-
+
@warning
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
*/
/**
@class wxFFileStream
- @todo describe this class.
+ This stream allows to both read from and write to a file using buffered
+ STDIO functions.
@library{wxbase}
@category{streams}
- @see wxStreamBuffer
+ @see wxFFileInputStream, wxFFileOutputStream, wxFileStream
*/
-class wxFFileStream : public wxFFileOutputStream
+class wxFFileStream : public wxFFileInputStream,
+ public wxFFileOutputStream
{
public:
/**
Initializes a new file stream in the given @a mode using the specified
@a iofileName name.
-
+
@warning
You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
*/
wxFFileStream(const wxString& iofileName, const wxString& mode = "w+b");
+
+ /**
+ Returns @true if the stream is initialized and ready.
+
+ This method returns @true if the stream can be both read from and
+ written to.
+ */
+ bool IsOk() const;
};
/**
@class wxFileStream
- @todo describe this class.
+ This class represents data that can be both read from and written to a file.
+ There are actually two such groups of classes: this one is based on wxFile
+ whereas wxFFileStream is based in the wxFFile class.
@library{wxbase}
@category{streams}
- @see wxStreamBuffer
+ @see wxFileInputStream, wxFileOutputStream, wxFFileStream
*/
-class wxFileStream : public wxFileOutputStream
+class wxFileStream : public wxFileOutputStream,
+ public wxFileInputStream
{
public:
/**
Initializes a new file stream in read-write mode using the specified
@a iofileName name.
-
+
@warning
- You should use wxStreamBase::IsOk() to verify if the constructor succeeded.
+ You should use IsOk() to verify if the constructor succeeded.
*/
wxFileStream(const wxString& iofileName);
+
+ /**
+ Returns @true if the stream is initialized and ready.
+
+ This method returns @true if the stream can be both read from and
+ written to.
+ */
+ bool IsOk() const;
};