Added cFile::Flush().
This is useful when using cFile as a log file and we know the server may crash after a specific write, so we flush the file before continuing.master
parent
96b4af1596
commit
5aa3fc4c56
|
@ -450,3 +450,12 @@ int cFile::Printf(const char * a_Fmt, ...)
|
|||
|
||||
|
||||
|
||||
|
||||
void cFile::Flush(void)
|
||||
{
|
||||
fflush(m_File);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@ Usage:
|
|||
2, Check if the file was opened using IsOpen()
|
||||
3, Read / write
|
||||
4, Destroy the instance
|
||||
|
||||
For reading entire files into memory, just use the static cFile::ReadWholeFile()
|
||||
*/
|
||||
|
||||
|
||||
|
@ -55,7 +57,7 @@ public:
|
|||
static const char PathSeparator = '/';
|
||||
#endif
|
||||
|
||||
/// The mode in which to open the file
|
||||
/** The mode in which to open the file */
|
||||
enum eMode
|
||||
{
|
||||
fmRead, // Read-only. If the file doesn't exist, object will not be valid
|
||||
|
@ -63,13 +65,13 @@ public:
|
|||
fmReadWrite // Read/write. If the file already exists, it will be left intact; writing will overwrite the data from the beginning
|
||||
} ;
|
||||
|
||||
/// Simple constructor - creates an unopened file object, use Open() to open / create a real file
|
||||
/** Simple constructor - creates an unopened file object, use Open() to open / create a real file */
|
||||
cFile(void);
|
||||
|
||||
/// Constructs and opens / creates the file specified, use IsOpen() to check for success
|
||||
/** Constructs and opens / creates the file specified, use IsOpen() to check for success */
|
||||
cFile(const AString & iFileName, eMode iMode);
|
||||
|
||||
/// Auto-closes the file, if open
|
||||
/** Auto-closes the file, if open */
|
||||
~cFile();
|
||||
|
||||
bool Open(const AString & iFileName, eMode iMode);
|
||||
|
@ -77,60 +79,63 @@ public:
|
|||
bool IsOpen(void) const;
|
||||
bool IsEOF(void) const;
|
||||
|
||||
/// Reads up to iNumBytes bytes into iBuffer, returns the number of bytes actually read, or -1 on failure; asserts if not open
|
||||
/** Reads up to iNumBytes bytes into iBuffer, returns the number of bytes actually read, or -1 on failure; asserts if not open */
|
||||
int Read (void * iBuffer, int iNumBytes);
|
||||
|
||||
/// Writes up to iNumBytes bytes from iBuffer, returns the number of bytes actually written, or -1 on failure; asserts if not open
|
||||
/** Writes up to iNumBytes bytes from iBuffer, returns the number of bytes actually written, or -1 on failure; asserts if not open */
|
||||
int Write(const void * iBuffer, int iNumBytes);
|
||||
|
||||
/// Seeks to iPosition bytes from file start, returns old position or -1 for failure; asserts if not open
|
||||
/** Seeks to iPosition bytes from file start, returns old position or -1 for failure; asserts if not open */
|
||||
int Seek (int iPosition);
|
||||
|
||||
/// Returns the current position (bytes from file start) or -1 for failure; asserts if not open
|
||||
/** Returns the current position (bytes from file start) or -1 for failure; asserts if not open */
|
||||
int Tell (void) const;
|
||||
|
||||
/// Returns the size of file, in bytes, or -1 for failure; asserts if not open
|
||||
/** Returns the size of file, in bytes, or -1 for failure; asserts if not open */
|
||||
int GetSize(void) const;
|
||||
|
||||
/// Reads the file from current position till EOF into an AString; returns the number of bytes read or -1 for error
|
||||
/** Reads the file from current position till EOF into an AString; returns the number of bytes read or -1 for error */
|
||||
int ReadRestOfFile(AString & a_Contents);
|
||||
|
||||
// tolua_begin
|
||||
|
||||
/// Returns true if the file specified exists
|
||||
/** Returns true if the file specified exists */
|
||||
static bool Exists(const AString & a_FileName);
|
||||
|
||||
/// Deletes a file, returns true if successful
|
||||
/** Deletes a file, returns true if successful */
|
||||
static bool Delete(const AString & a_FileName);
|
||||
|
||||
/// Renames a file or folder, returns true if successful. May fail if dest already exists (libc-dependant)!
|
||||
/** Renames a file or folder, returns true if successful. May fail if dest already exists (libc-dependant)! */
|
||||
static bool Rename(const AString & a_OrigPath, const AString & a_NewPath);
|
||||
|
||||
/// Copies a file, returns true if successful.
|
||||
/** Copies a file, returns true if successful. */
|
||||
static bool Copy(const AString & a_SrcFileName, const AString & a_DstFileName);
|
||||
|
||||
/// Returns true if the specified path is a folder
|
||||
/** Returns true if the specified path is a folder */
|
||||
static bool IsFolder(const AString & a_Path);
|
||||
|
||||
/// Returns true if the specified path is a regular file
|
||||
/** Returns true if the specified path is a regular file */
|
||||
static bool IsFile(const AString & a_Path);
|
||||
|
||||
/// Returns the size of the file, or a negative number on error
|
||||
/** Returns the size of the file, or a negative number on error */
|
||||
static int GetSize(const AString & a_FileName);
|
||||
|
||||
/// Creates a new folder with the specified name. Returns true if successful. Path may be relative or absolute
|
||||
/** Creates a new folder with the specified name. Returns true if successful. Path may be relative or absolute */
|
||||
static bool CreateFolder(const AString & a_FolderPath);
|
||||
|
||||
/// Returns the entire contents of the specified file as a string. Returns empty string on error.
|
||||
/** Returns the entire contents of the specified file as a string. Returns empty string on error. */
|
||||
static AString ReadWholeFile(const AString & a_FileName);
|
||||
|
||||
// tolua_end
|
||||
|
||||
/// Returns the list of all items in the specified folder (files, folders, nix pipes, whatever's there).
|
||||
/** Returns the list of all items in the specified folder (files, folders, nix pipes, whatever's there). */
|
||||
static AStringVector GetFolderContents(const AString & a_Folder); // Exported in ManualBindings.cpp
|
||||
|
||||
int Printf(const char * a_Fmt, ...);
|
||||
|
||||
/** Flushes all the bufferef output into the file (only when writing) */
|
||||
void Flush(void);
|
||||
|
||||
private:
|
||||
#ifdef USE_STDIO_FILE
|
||||
FILE * m_File;
|
||||
|
|
Loading…
Reference in New Issue