X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c601df457c536b243b4b526b43442fdd1863534f..b2b4469be1759c89835d490a4ac608dd252da21d:/include/wx/file.h diff --git a/include/wx/file.h b/include/wx/file.h index c11ea4d648..b767d0a4a0 100644 --- a/include/wx/file.h +++ b/include/wx/file.h @@ -7,21 +7,19 @@ // Created: 29/01/98 // RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FILEH__ #define _WX_FILEH__ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "file.h" #endif -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/filefn.h" - #include "wx/strconv.h" -#endif +#include "wx/string.h" +#include "wx/filefn.h" +#include "wx/strconv.h" #if wxUSE_FILE @@ -53,7 +51,8 @@ // NB: for space efficiency this class has no virtual functions, including // dtor which is _not_ virtual, so it shouldn't be used as a base class. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFile + +class WXDLLIMPEXP_BASE wxFile { public: // more file constants @@ -67,43 +66,43 @@ public: // ---------------- // check whether a regular file by this name exists static bool Exists(const wxChar *name); - // check whetther we can access the given file in given mode + // check whether we can access the given file in given mode // (only read and write make sense here) static bool Access(const wxChar *name, OpenMode mode); // ctors // ----- // def ctor - wxFile() { m_fd = fd_invalid; } + wxFile() { m_fd = fd_invalid; m_error = false; } // open specified file (may fail, use IsOpened()) wxFile(const wxChar *szFileName, OpenMode mode = read); // attach to (already opened) file - wxFile(int fd) { m_fd = fd; } + wxFile(int fd) { m_fd = fd; m_error = false; } // open/close // create a new file (with the default value of bOverwrite, it will fail if // the file already exists, otherwise it will overwrite it and succeed) - bool Create(const wxChar *szFileName, bool bOverwrite = FALSE, + bool Create(const wxChar *szFileName, bool bOverwrite = false, int access = wxS_DEFAULT); bool Open(const wxChar *szFileName, OpenMode mode = read, int access = wxS_DEFAULT); bool Close(); // Close is a NOP if not opened // assign an existing file descriptor and get it back from wxFile object - void Attach(int fd) { Close(); m_fd = fd; } + void Attach(int fd) { Close(); m_fd = fd; m_error = false; } void Detach() { m_fd = fd_invalid; } int fd() const { return m_fd; } // read/write (unbuffered) // returns number of bytes read or ofsInvalid on error - off_t Read(void *pBuf, off_t nCount); + wxFileSize_t Read(void *pBuf, wxFileSize_t nCount); // returns the number of bytes written - size_t Write(const void *pBuf, size_t nCount); + wxFileSize_t Write(const void *pBuf, wxFileSize_t nCount); // returns true on success - bool Write(const wxString& s, wxMBConv& conv = wxConvLocal) + bool Write(const wxString& s, wxMBConv& conv = wxConvUTF8) { const wxWX2MBbuf buf = s.mb_str(conv); - size_t size = strlen(buf); + wxFileSize_t size = strlen(buf); return Write((const char *) buf, size) == size; } // flush data not yet written @@ -111,13 +110,13 @@ public: // file pointer operations (return ofsInvalid on failure) // move ptr ofs bytes related to start/current off_t/end of file - off_t Seek(off_t ofs, wxSeekMode mode = wxFromStart); + wxFileSize_t Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart); // move ptr to ofs bytes before the end - off_t SeekEnd(off_t ofs = 0) { return Seek(ofs, wxFromEnd); } + wxFileSize_t SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); } // get current off_t - off_t Tell() const; + wxFileSize_t Tell() const; // get current file length - off_t Length() const; + wxFileSize_t Length() const; // simple accessors // is file opened? @@ -148,7 +147,8 @@ private: // file (and close this one) or call Discard() to cancel the modification. If // you call neither of them, dtor will call Discard(). // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTempFile + +class WXDLLIMPEXP_BASE wxTempFile { public: // ctors @@ -164,8 +164,9 @@ public: bool IsOpened() const { return m_file.IsOpened(); } // I/O (both functions return true on success, false on failure) - bool Write(const void *p, size_t n) { return m_file.Write(p, n) != 0; } - bool Write(const wxString& str, wxMBConv& conv = wxConvLibc) { return m_file.Write(str, conv); } + bool Write(const void *p, wxFileSize_t n) { return m_file.Write(p, n) == n; } + bool Write(const wxString& str, wxMBConv& conv = wxConvUTF8) + { return m_file.Write(str, conv); } // different ways to close the file // validate changes and delete the old file of name m_strName