git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			141 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
% automatically generated by HelpGen from tempfile.tex at 10/Jan/99 19:24:44
 | 
						|
\section{\class{wxTempFile}}\label{wxtempfile}
 | 
						|
 | 
						|
wxTempFile provides a relatively safe way to replace the contents of the
 | 
						|
existing file. The name is explained by the fact that it may be also used as
 | 
						|
just a temporary file if you don't replace the old file contents.
 | 
						|
 | 
						|
Usually, when a program replaces the contents of some file it first opens it for
 | 
						|
writing, thus losing all of the old data and then starts recreating it. This
 | 
						|
approach is not very safe because during the regeneration of the file bad things
 | 
						|
may happen: the program may find that there is an internal error preventing it
 | 
						|
from completing file generation, the user may interrupt it (especially if file
 | 
						|
generation takes long time) and, finally, any other external interrupts (power
 | 
						|
supply failure or a disk error) will leave you without either the original file
 | 
						|
or the new one.
 | 
						|
 | 
						|
wxTempFile addresses this problem by creating a temporary file which is meant to
 | 
						|
replace the original file - but only after it is fully written. So, if the user
 | 
						|
interrupts the program during the file generation, the old file won't be lost.
 | 
						|
Also, if the program discovers itself that it doesn't want to replace the old
 | 
						|
file there is no problem - in fact, wxTempFile will {\bf not} replace the old
 | 
						|
file by default, you should explicitly call \helpref{Commit}{wxtempfilecommit} 
 | 
						|
to do it. Calling \helpref{Discard}{wxtempfilediscard} explicitly discards any
 | 
						|
modifications: it closes and deletes the temporary file and leaves the original
 | 
						|
file unchanged. If you don't call neither of Commit() and Discard(), the
 | 
						|
destructor will call Discard() automatically.
 | 
						|
 | 
						|
To summarize: if you want to replace another file, create an instance of
 | 
						|
wxTempFile passing the name of the file to be replaced to the constructor (you
 | 
						|
may also use default constructor and pass the file name to 
 | 
						|
\helpref{Open}{wxtempfileopen}). Then you can \helpref{write}{wxtempfilewrite} 
 | 
						|
to wxTempFile using \helpref{wxFile}{wxfile}-like functions and later call
 | 
						|
Commit() to replace the old file (and close this one) or call Discard() to cancel
 | 
						|
the modifications.
 | 
						|
 | 
						|
\wxheading{Derived from}
 | 
						|
 | 
						|
No base class
 | 
						|
 | 
						|
\wxheading{Include files}
 | 
						|
 | 
						|
<wx/file.h>
 | 
						|
 | 
						|
\wxheading{See also:}
 | 
						|
 | 
						|
\helpref{wxFile}{wxfile}\\
 | 
						|
\helpref{wxTempFileOutputStream}{wxtempfileoutputstream}
 | 
						|
 | 
						|
\latexignore{\rtfignore{\wxheading{Members}}}
 | 
						|
 | 
						|
\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfilector}
 | 
						|
 | 
						|
\func{}{wxTempFile}{\void}
 | 
						|
 | 
						|
Default constructor - \helpref{Open}{wxtempfileopen} must be used to open the
 | 
						|
file.
 | 
						|
 | 
						|
\membersection{wxTempFile::wxTempFile}\label{wxtempfilewxtempfile}
 | 
						|
 | 
						|
\func{}{wxTempFile}{\param{const wxString\& }{strName}}
 | 
						|
 | 
						|
Associates wxTempFile with the file to be replaced and opens it. You should use 
 | 
						|
\helpref{IsOpened}{wxtempfileisopened} to verify if the constructor succeeded.
 | 
						|
 | 
						|
\membersection{wxTempFile::Open}\label{wxtempfileopen}
 | 
						|
 | 
						|
\func{bool}{Open}{\param{const wxString\& }{strName}}
 | 
						|
 | 
						|
Open the temporary file, returns {\tt true} on success, {\tt false} if an error
 | 
						|
occurred.
 | 
						|
 | 
						|
{\it strName} is the name of file to be replaced. The temporary file is always
 | 
						|
created in the directory where {\it strName} is. In particular, if 
 | 
						|
{\it strName} doesn't include the path, it is created in the current directory
 | 
						|
and the program should have write access to it for the function to succeed.
 | 
						|
 | 
						|
\membersection{wxTempFile::IsOpened}\label{wxtempfileisopened}
 | 
						|
 | 
						|
\constfunc{bool}{IsOpened}{\void}
 | 
						|
 | 
						|
Returns {\tt true} if the file was successfully opened.
 | 
						|
 | 
						|
\membersection{wxTempFile::Length}\label{wxtempfilelength}
 | 
						|
 | 
						|
\constfunc{wxFileOffset}{Length}{\void}
 | 
						|
 | 
						|
Returns the length of the file.
 | 
						|
 | 
						|
\membersection{wxTempFile::Seek}\label{wxtempfileseek}
 | 
						|
 | 
						|
\func{wxFileOffset}{Seek}{\param{wxFileOffset }{ofs}, \param{wxSeekMode }{mode = wxFromStart}}
 | 
						|
 | 
						|
Seeks to the specified position.
 | 
						|
 | 
						|
\membersection{wxTempFile::Tell}\label{wxtempfiletell}
 | 
						|
 | 
						|
\constfunc{wxFileOffset}{Tell}{\void}
 | 
						|
 | 
						|
Returns the current position or wxInvalidOffset if file is not opened or if another
 | 
						|
error occurred.
 | 
						|
 | 
						|
\membersection{wxTempFile::Write}\label{wxtempfilewrite}
 | 
						|
 | 
						|
\func{bool}{Write}{\param{const void }{*p}, \param{size\_t }{n}}
 | 
						|
 | 
						|
Write to the file, return {\tt true} on success, {\tt false} on failure.
 | 
						|
 | 
						|
\membersection{wxTempFile::Write}\label{wxtempfilewrites}
 | 
						|
 | 
						|
\func{bool}{Write}{\param{const wxString\& }{str}, \param{wxMBConv\&}{ conv = wxConvLibc}}
 | 
						|
 | 
						|
Write to the file, return {\tt true} on success, {\tt false} on failure.
 | 
						|
 | 
						|
The second argument is only meaningful in Unicode build of wxWidgets when
 | 
						|
{\it conv} is used to convert {\it str} to multibyte representation.
 | 
						|
 | 
						|
\membersection{wxTempFile::Commit}\label{wxtempfilecommit}
 | 
						|
 | 
						|
\func{bool}{Commit}{\void}
 | 
						|
 | 
						|
Validate changes: deletes the old file of name m\_strName and renames the new
 | 
						|
file to the old name. Returns {\tt true} if both actions succeeded. If {\tt false} is
 | 
						|
returned it may unfortunately mean two quite different things: either that
 | 
						|
either the old file couldn't be deleted or that the new file couldn't be renamed
 | 
						|
to the old name.
 | 
						|
 | 
						|
\membersection{wxTempFile::Discard}\label{wxtempfilediscard}
 | 
						|
 | 
						|
\func{void}{Discard}{\void}
 | 
						|
 | 
						|
Discard changes: the old file contents is not changed, temporary file is
 | 
						|
deleted.
 | 
						|
 | 
						|
\membersection{wxTempFile::\destruct{wxTempFile}}\label{wxtempfiledtor}
 | 
						|
 | 
						|
\func{}{\destruct{wxTempFile}}{\void}
 | 
						|
 | 
						|
Destructor calls \helpref{Discard()}{wxtempfilediscard} if temporary file
 | 
						|
is still opened.
 | 
						|
 |