#ifndef _WX_FFILE_H_
#define _WX_FFILE_H_
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "ffile.h"
#endif
// dtor which is _not_ virtual, so it shouldn't be used as a base class.
// ----------------------------------------------------------------------------
-class WXDLLEXPORT_BASE wxFFile
+class WXDLLIMPEXP_BASE wxFFile
{
public:
// ctors
bool Close();
// assign an existing file descriptor and get it back from wxFFile object
- void Attach(FILE *fp, const wxString& name = wxT(""))
+ void Attach(FILE *fp, const wxString& name = wxEmptyString)
{ Close(); m_fp = fp; m_name = name; }
void Detach() { m_fp = NULL; }
FILE *fp() const { return m_fp; }
// read/write (unbuffered)
// read all data from the file into a string (useful for text files)
- bool ReadAll(wxString *str);
+ bool ReadAll(wxString *str, wxMBConv& conv = wxConvUTF8);
// returns number of bytes read - use Eof() and Error() to see if an error
// occured or not
size_t Read(void *pBuf, size_t nCount);
// file pointer operations (return ofsInvalid on failure)
// move ptr ofs bytes related to start/current pos/end of file
- bool Seek(long ofs, wxSeekMode mode = wxFromStart);
+ bool Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart);
// move ptr to ofs bytes before the end
- bool SeekEnd(long ofs = 0) { return Seek(ofs, wxFromEnd); }
+ bool SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); }
// get current position in the file
- size_t Tell() const;
+ wxFileOffset Tell() const;
// get current file length
- size_t Length() const;
+ wxFileOffset Length() const;
- // simple accessors
+ // simple accessors: note that Eof() and Error() may only be called if
+ // IsOpened()!
// is file opened?
bool IsOpened() const { return m_fp != NULL; }
// is end of file reached?
bool Error() const { return ferror(m_fp) != 0; }
// get the file name
const wxString& GetName() const { return m_name; }
+ // type such as disk or pipe
+ wxFileKind GetKind() const { return wxGetFileKind(m_fp); }
// dtor closes the file if opened
~wxFFile() { Close(); }