X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/acdad9dbd300b127bf49840aa89c228f147d6461..e4097f77c440b1f31a80fe273cc732c14d606096:/interface/wx/file.h diff --git a/interface/wx/file.h b/interface/wx/file.h index 30269c2e53..31ea6bdd4f 100644 --- a/interface/wx/file.h +++ b/interface/wx/file.h @@ -2,64 +2,10 @@ // Name: file.h // Purpose: interface of wxTempFile, wxFile // Author: wxWidgets team -// RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -/** - We redefine these constants here because S_IREAD &c are _not_ standard. - However, we do assume that the values correspond to the Unix umask bits. -*/ -enum wxPosixPermissions -{ - /// standard Posix names for these permission flags - //@{ - wxS_IRUSR = 00400, - wxS_IWUSR = 00200, - wxS_IXUSR = 00100, - - wxS_IRGRP = 00040, - wxS_IWGRP = 00020, - wxS_IXGRP = 00010, - - wxS_IROTH = 00004, - wxS_IWOTH = 00002, - wxS_IXOTH = 00001, - //@} - - /// longer but more readable synonims for the constants above - //@{ - wxPOSIX_USER_READ = wxS_IRUSR, - wxPOSIX_USER_WRITE = wxS_IWUSR, - wxPOSIX_USER_EXECUTE = wxS_IXUSR, - - wxPOSIX_GROUP_READ = wxS_IRGRP, - wxPOSIX_GROUP_WRITE = wxS_IWGRP, - wxPOSIX_GROUP_EXECUTE = wxS_IXGRP, - - wxPOSIX_OTHERS_READ = wxS_IROTH, - wxPOSIX_OTHERS_WRITE = wxS_IWOTH, - wxPOSIX_OTHERS_EXECUTE = wxS_IXOTH, - //@} - - /// Default mode for the new files: allow reading/writing them to everybody but - /// the effective file mode will be set after ANDing this value with umask and - /// so won't include wxS_IW{GRP,OTH} for the default 022 umask value - wxS_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | \ - wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | \ - wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE), - - /// Default mode for the new directories (see wxFileName::Mkdir): allow - /// reading/writing/executing them to everybody, but just like wxS_DEFAULT - /// the effective directory mode will be set after ANDing this value with umask - wxS_DIR_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | wxPOSIX_USER_EXECUTE | \ - wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | wxPOSIX_GROUP_EXECUTE | \ - wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE | wxPOSIX_OTHERS_EXECUTE) -}; - - - /** @class wxTempFile @@ -129,6 +75,18 @@ public: */ void Discard(); + /** + Flush the data written to the file to disk. + + This simply calls wxFile::Flush() for the underlying file and may be + necessary with file systems such as XFS and Ext4 under Linux. Calling + this function may however have serious performance implications and + also is not necessary with many other file systems so it is not done by + default -- but you can call it before calling Commit() to absolutely + ensure that the data was indeed written to the disk correctly. + */ + bool Flush(); + /** Returns @true if the file was successfully opened. */ @@ -214,12 +172,12 @@ public: or test if it can be opened for writing with Access(). */ write, - /** Open file for reading and writing; can not be used with Access() */ + /** Open file for reading and writing; cannot be used with Access() */ read_write, /** Open file for appending: the file is opened for writing, but the old contents of the file are not erased and the file pointer is initially placed at the end - of the file; can not be used with Access(). + of the file; cannot be used with Access(). This is the same as OpenMode::write if the file doesn't exist. */ @@ -272,6 +230,32 @@ public: */ ~wxFile(); + /** + Returns the error code for the last unsuccessful operation. + + The error code is system-dependent and corresponds to the value of the + standard @c errno variable when the last error occurred. + + Notice that only simple accessors such as IsOpened() and Eof() (and + this method itself) don't modify the last error value, all other + methods can potentially change it if an error occurs, including the + const ones such as Tell() or Length(). + + @since 2.9.2 + + @see ClearLastError() + */ + int GetLastError() const; + + /** + Resets the error code. + + GetLastError() will return 0 until the next error occurs. + + @since 2.9.2 + */ + void ClearLastError(); + /** This function verifies if we may access the given file in specified mode. Only values of @c wxFile::read or @c wxFile::write really make sense here. @@ -311,8 +295,11 @@ public: Get back a file descriptor from wxFile object - the caller is responsible for closing the file if this descriptor is opened. IsOpened() will return @false after call to Detach(). + + @return The file descriptor (this is new since wxWidgets 3.0.0, in the + previous versions this method didn't return anything). */ - void Detach(); + int Detach(); /** Returns @true if the end of the file has been reached. @@ -387,6 +374,23 @@ public: */ ssize_t Read(void* buffer, size_t count); + /** + Reads the entire contents of the file into a string. + + @param str + Non-@NULL pointer to a string to read data into. + @param conv + Conversion object to use in Unicode build; by default supposes + that file contents is encoded in UTF-8 but falls back to the + current locale encoding (or Latin-1 if it is UTF-8 too) if it is + not. + + @return @true if file was read successfully, @false otherwise. + + @since 2.9.5 + */ + bool ReadAll(wxString* str, const wxMBConv& conv = wxConvAuto()); + /** Seeks to the specified position.