Xfce Foundation Classes
Main Page  | IndexNamespace List  |  Alphabetical List  |  Class List  |  File List


Xfc::G::TempFile Class Reference

A C++ wrapper interface for the g_file_open_tmp() and g_mkstemp() functions. More...

#include <xfc/glib/fileutils.hh>

Inheritance diagram for Xfc::G::TempFile:

Xfc::StackObject List of all members.

Public Member Functions

Accessors
Methods

Detailed Description

A C++ wrapper interface for the g_file_open_tmp() and g_mkstemp() functions.

TempFile is a convenient wrapper class for the g_file_open_tmp() and g_mkstemp() functions. It is a StackObject and must created on the stack. You can't allocate a TempFile dynamically.

Example 1: You can construct an empty temporary file using the default constructor and then call either one of the open() methods or mkstemp().

 G::TempFile file;
 std::string filename("/home/testfile");
 if (file.mkstemp(filename))
 {
        // write to filename
 }
 file.close();

Example 2: Alternatively you can construct and open a temporary file in one step by calling one of the parameterized constructors.

 std::string filename;
 G::Error error;
 G::TempFile file("testfile", filename, &error);
 if (file.is_open())
 {
        // write to filename
 }
 file.close();

You don't have to explicitly call TempFile::close() as above, unless you want to. When a TempFile object goes out of scope its destructor will check for an open file and close it.


Constructor & Destructor Documentation

Xfc::G::TempFile::TempFile ( std::string &  template_filename  ) 

Construct and open a temporary file with the template filename template_filename.

Parameters:
template_filename The template for the filename.
See mkstemp() for details.

Xfc::G::TempFile::TempFile ( const std::string &  template_filename,
std::string &  actual_filename,
G::Error error 
)

Construct and open a temporary file with the template filename template_filename.

Parameters:
template_filename The prefix template for the file name, but basename only.
actual_filename The location to store actual filename used, includes full path.
error The return location for a G::Error, or null.
See open() for details.

Xfc::G::TempFile::TempFile ( std::string &  template_filename  ) 

Construct and open a temporary file with the template filename template_filename.

Parameters:
template_filename The template for the filename.
See mkstemp() for details.

Xfc::G::TempFile::TempFile ( const std::string &  template_filename,
std::string &  actual_filename,
G::Error error 
)

Construct and open a temporary file with the template filename template_filename.

Parameters:
template_filename The prefix template for the file name, but basename only.
actual_filename The location to store actual filename used, includes full path.
error The return location for a G::Error, or null.
See open() for details.


Member Function Documentation

bool Xfc::G::TempFile::is_open (  )  const

Determines whether the temporary file is open.

Returns:
true if the file is open.

bool Xfc::G::TempFile::open ( std::string &  actual_filename,
G::Error error 
)

Opens a file for writing in the preferred directory for temporary files (as returned by g_get_tmp_dir()).

Parameters:
actual_filename The location to store actual filename used, includes full path.
error The return location for a G::Error, or null.
Returns:
true if the file was opened for reading and writing.
This version of open() uses a default template (see open(const std::string&, std::string&, G::Error*)).

bool Xfc::G::TempFile::open ( const std::string &  template_filename,
std::string &  actual_filename,
G::Error error 
)

Opens a file for writing in the preferred directory for temporary files (as returned by g_get_tmp_dir()).

Parameters:
template_filename The prefix template for the file name, but basename only.
actual_filename The location to store actual filename used, includes full path.
error The return location for a G::Error, or null.
Returns:
true if the file was opened for reading and writing.
The file is opened in binary mode on platforms where there is a difference. If the file is not explicitly closed with close() it will automatically be closed when the file goes out of scope. If an error occurs false is returned and error will be set. Otherwise true is returned.

Do not suffix template_filename with any 'X' characters, this method will do that for you. Unlike mkstemp() template_filename should only be a basename, no directory components are allowed. Note that in contrast to mkstemp() template_filename is not modified, and might thus be a read-only literal string. On return the actual_filename holds the full path and filename of the temporary file.

bool Xfc::G::TempFile::mkstemp ( std::string &  template_filename  ) 

Opens a temporary file.

Parameters:
template_filename The template file name including any directory paths.
Returns:
true if the file was opened for reading and writing.
The file is opened in binary mode on platforms where there is a difference. If the file is not explicitly closed with close() it will automatically be closed when the file goes out of scope. If an error occurs false is returned and error will be set. Otherwise true is returned.

Do not suffix template_filename with any 'X' characters, this method will do that for you. On returning template_filename will have been modified to form the name of a file that didn't exist.


The documentation for this class was generated from the following file: Xfce Foundation Classes
Copyright © 2004-2005 The XFC Development Team XFC 4.3