X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/886dd7d28e50c003cc88b81b968d487a3c17b0d7..549c8cc2fe3ab03276745d546b0f81297c34a147:/include/wx/file.h diff --git a/include/wx/file.h b/include/wx/file.h index fd0b7021e3..fde5099582 100644 --- a/include/wx/file.h +++ b/include/wx/file.h @@ -13,15 +13,13 @@ #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 @@ -54,7 +52,7 @@ // dtor which is _not_ virtual, so it shouldn't be used as a base class. // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxFile +class WXDLLIMPEXP_BASE wxFile { public: // more file constants @@ -68,36 +66,36 @@ 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); + // returns number of bytes read or wxInvalidOffset on error + ssize_t Read(void *pBuf, size_t nCount); // returns the number of bytes written size_t Write(const void *pBuf, size_t nCount); // returns true on success @@ -110,15 +108,15 @@ public: // flush data not yet written bool Flush(); - // 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); + // file pointer operations (return wxInvalidOffset on failure) + // move ptr ofs bytes related to start/current offset/end of file + wxFileOffset 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); } - // get current off_t - off_t Tell() const; + wxFileOffset SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); } + // get current offset + wxFileOffset Tell() const; // get current file length - off_t Length() const; + wxFileOffset Length() const; // simple accessors // is file opened? @@ -150,7 +148,7 @@ private: // you call neither of them, dtor will call Discard(). // ---------------------------------------------------------------------------- -class WXDLLEXPORT_BASE wxTempFile +class WXDLLIMPEXP_BASE wxTempFile { public: // ctors @@ -166,7 +164,7 @@ 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 void *p, size_t n) { return m_file.Write(p, n) == n; } bool Write(const wxString& str, wxMBConv& conv = wxConvUTF8) { return m_file.Write(str, conv); }