BALL::File Class Reference
[Operating system support]

#include <BALL/SYSTEM/file.h>

Inheritance diagram for BALL::File:
BALL::Bruker1DFile BALL::Bruker2DFile BALL::DSN6File BALL::LineBasedFile BALL::ResourceFile BALL::TrajectoryFile BALL::GenericMolFile BALL::JCAMPFile BALL::NMRStarFile BALL::SCWRLRotamerFile BALL::DCDFile BALL::TRRFile BALL::GAMESSDatFile BALL::GAMESSLogFile BALL::HINFile BALL::KCFFile BALL::MOL2File BALL::MOLFile BALL::PDBFile BALL::XYZFile

List of all members.


Classes

class  CannotWrite

Public Types

Type definitions
typedef std::ios::openmode OpenMode

Public Member Functions

Constructors and Destructors
 File ()
 File (const String &name, OpenMode open_mode=std::ios::in) throw (Exception::FileNotFound)
 File (const File &file) throw (Exception::FileNotFound)
virtual ~File ()
virtual void clear ()
Assignment
const Fileoperator= (const File &file)
Debugging and Diagnostics
bool isValid () const

Static Public Attributes

Constants
static const OpenMode MODE_IN
 

Open for input (default).


static const OpenMode MODE_OUT
 

Open for output.


static const OpenMode MODE_APP
 

Append. Seek to end before each write operation.


static const OpenMode MODE_BINARY
 

Binary mode.


static const OpenMode MODE_ATE
 

Seek to end directly after opening.


static const OpenMode MODE_TRUNC
 

Truncate an existing file.



Protected Attributes

String name_
String original_name_
OpenMode open_mode_
bool is_open_
bool is_temporary_

Static Protected Attributes

static TransformationManager transformation_manager_
static Size transformation_methods_

Enums

enum  Transformation { TRANSFORMATION__EXEC = 1, TRANSFORMATION__FILTER = 2, TRANSFORMATION__URL = 3 }
enum  Type {
  TYPE__UNKNOWN = 0, TYPE__DIRECTORY = 1, TYPE__CHAR_SPECIAL_FILE = 2, TYPE__BLOCK_SPECIAL_FILE = 3,
  TYPE__REGULAR_FILE = 4, TYPE__SYMBOLIC_LINK = 5, TYPE__SOCKET = 6, TYPE__FIFO_SPECIAL_FILE = 7
}
static const String TRANSFORMATION_EXEC_PREFIX
 

Prefix for filenames that are created through the execution of commands "exec:".


static const String TRANSFORMATION_FILE_PREFIX
 

Prefix for files (to mimick URL-like behavior) "file:".


static const String TRANSFORMATION_FTP_PREFIX
 

Prefix for FTP-transfers "ftp://".


static const String TRANSFORMATION_HTTP_PREFIX
 

Prefix for HTTP-transfer "http://".



Accessors

bool open (const String &name, File::OpenMode open_mode=std::ios::in) throw (Exception::FileNotFound)
bool reopen () throw (Exception::FileNotFound)
bool reopen (File::OpenMode open_mode) throw (Exception::FileNotFound)
void close ()
const StringgetName () const
void setName (const String &name)
const StringgetOriginalName () const
Size getSize () throw (Exception::FileNotFound)
File::OpenMode getOpenMode () const
Type getType (bool trace_link) const throw (Exception::FileNotFound)
bool copyTo (const String &destination_name, Size buffer_size=4096) throw (Exception::FileNotFound)
bool moveTo (const String &destination_name) throw (Exception::FileNotFound)
bool remove ()
bool renameTo (const String &new_path) throw (Exception::FileNotFound)
bool truncate (Size size=0) throw (Exception::FileNotFound)
std::fstream & getFileStream ()
static Size getSize (String name) throw (Exception::FileNotFound)
static Type getType (String name, bool trace_link) throw (Exception::FileNotFound)
static bool copy (String source_name, String destination_name, Size buffer_size=4096) throw (Exception::FileNotFound)
static bool move (const String &source_name, const String &destination_name) throw (Exception::FileNotFound)
static bool remove (String name)
static bool rename (String old_path, String new_path) throw (Exception::FileNotFound)
static bool truncate (String path, Size size=0) throw (Exception::FileNotFound)
static bool createTemporaryFilename (String &temporary)

On-the-fly file transformation

See also:
TransformationManager


TransformationManagergetTransformationManager ()
const TransformationManagergetTransformationManager () const
static void enableTransformation (Transformation transformation)
static void disableTransformation (Transformation transformation)
static bool isTransformationEnabled (Transformation transformation)
static void registerTransformation (const String &pattern, const String &exec)
static void unregisterTransformation (const String &pattern)

Predicates

bool operator== (const File &file) const
bool operator!= (const File &file) const
bool isOpen () const
bool isClosed () const
bool isAccessible () const throw (Exception::FileNotFound)
bool isCanonized () const throw (Exception::FileNotFound)
bool isReadable () const throw (Exception::FileNotFound)
bool isWritable () const throw (Exception::FileNotFound)
bool isExecutable () const throw (Exception::FileNotFound)
static bool isAccessible (String name)
static bool isReadable (String name) throw (Exception::FileNotFound)
static bool isWritable (String name) throw (Exception::FileNotFound)
static bool isExecutable (String name) throw (Exception::FileNotFound)

Detailed Description

File Class.


Member Typedef Documentation

typedef std::ios::openmode BALL::File::OpenMode

File open modes. This type is used to describe the standard openmodes for files as described in Section 27.4.2.1.4 of the ANSI C++ standard.


Member Enumeration Documentation

Transformation types for file. This enum defines some possible types for on-the-fly file transformation.

Enumerator:
TRANSFORMATION__EXEC 
TRANSFORMATION__FILTER 
TRANSFORMATION__URL 

Filetype

Enumerator:
TYPE__UNKNOWN 
TYPE__DIRECTORY 
TYPE__CHAR_SPECIAL_FILE 
TYPE__BLOCK_SPECIAL_FILE 
TYPE__REGULAR_FILE 
TYPE__SYMBOLIC_LINK 
TYPE__SOCKET 
TYPE__FIFO_SPECIAL_FILE 

Constructor & Destructor Documentation

BALL::File::File (  ) 

Default constructor.

BALL::File::File ( const String name,
OpenMode  open_mode = std::ios::in 
) throw (Exception::FileNotFound)

Construct new File object from the file name and open the file.

Parameters:
name the name of the file to be opend
open_mode the openmode to be used
See also:
open
BALL::File::File ( const File file  )  throw (Exception::FileNotFound)

Copy constructor. The file is not opend.

Parameters:
file the File object to be copied (cloned)
See also:
open
virtual BALL::File::~File (  )  [virtual]

Destructor. The file is closed.


Member Function Documentation

virtual void BALL::File::clear (  )  [virtual]
static bool BALL::File::copy ( String  source_name,
String  destination_name,
Size  buffer_size = 4096 
) throw (Exception::FileNotFound) [static]

Copy a given file to a given destination. If a file with the destination name exists already, nothing happens.

Parameters:
source_name the name of the source file
destination_name the name of the destination file
buffer_size the buffer size to use while copying
Returns:
true if copying was successfull
bool BALL::File::copyTo ( const String destination_name,
Size  buffer_size = 4096 
) throw (Exception::FileNotFound)

Copy the file to a given destination. If a file with the destination name exists already, nothing happens.

Parameters:
destination_name the name of the destination file
buffer_size the buffer size to use while copying
Returns:
true if copying was successfull
static bool BALL::File::createTemporaryFilename ( String temporary  )  [static]

Create a temporary filename. This method creates strings, starting at _AAAAAAA.TMP and tries if a file with this name exists. If not, the string is returned. If a file with this name exists, it continues to create names up to _ZZZZZZZ.TMP.

Parameters:
temporary reference to the temporary filename
Returns:
bool true if a temporary filename could be found

Referenced by main().

static void BALL::File::disableTransformation ( Transformation  transformation  )  [static]
static void BALL::File::enableTransformation ( Transformation  transformation  )  [static]
std::fstream& BALL::File::getFileStream (  ) 

Return the stream associated with this file. Implemented just for convenience.

Returns:
std::fstream the stream
const String& BALL::File::getName (  )  const

Return the name of the file.

Returns:
String the name of the file
File::OpenMode BALL::File::getOpenMode (  )  const

Return the open mode. Default is IN.

Returns:
int the open mode
const String& BALL::File::getOriginalName (  )  const
static Size BALL::File::getSize ( String  name  )  throw (Exception::FileNotFound) [static]

Return the size of a given file.

Returns:
Size the size of the file
Size BALL::File::getSize (  )  throw (Exception::FileNotFound)

Return the size of the file. If the file does not exist, 0 is returned.

Returns:
Size the size of the file
const TransformationManager& BALL::File::getTransformationManager (  )  const

Constant access to the TransformationManager. File defines a static instance of TransformationManager to handle on-the-fly conversions of files (e.g. compression, charset conversion, etc.).

TransformationManager& BALL::File::getTransformationManager (  ) 

Mutable access the TransformationManager. File defines a static instance of TransformationManager to handle on-the-fly conversions of files (e.g. compression, charset conversion, etc.).

Type BALL::File::getType ( bool  trace_link  )  const throw (Exception::FileNotFound)

Return the filetype.

Parameters:
trace_link true to follow links
Returns:
Type the filetype
static Type BALL::File::getType ( String  name,
bool  trace_link 
) throw (Exception::FileNotFound) [static]

Return the filetype of a given file.

Parameters:
name the name of the file.
trace_link true to follow links
Returns:
Type the filetype
bool BALL::File::isAccessible (  )  const throw (Exception::FileNotFound)

Test if the file can be accessed.

Returns:
bool true if the file can be accessed
static bool BALL::File::isAccessible ( String  name  )  [static]

Test if a given file can be accessed.

Parameters:
name the name of the file to be tested
Returns:
bool true if the file can be accessed
bool BALL::File::isCanonized (  )  const throw (Exception::FileNotFound)

Test if the path of the file is canonized. The path is compared before and after call of FileSystem::canonizePath(canonized_name).

See also:
FileSystem::canonizePath
Returns:
bool true if the path is canonized.
bool BALL::File::isClosed (  )  const

Test if the file is closed. The standard constructor opens the file.

Returns:
bool true if the file is closed
bool BALL::File::isExecutable (  )  const throw (Exception::FileNotFound)

Test if the file is executable.

Returns:
true if the file is executable
static bool BALL::File::isExecutable ( String  name  )  throw (Exception::FileNotFound) [static]

Test if a given file is executable.

Parameters:
name the name of the file
Returns:
true if the file is executable
bool BALL::File::isOpen (  )  const

Test if the file is opend. The standard constructor opens the file.

Returns:
bool true if the file is closed
bool BALL::File::isReadable (  )  const throw (Exception::FileNotFound)

Test if the file is readable.

Returns:
true if the file can be read
static bool BALL::File::isReadable ( String  name  )  throw (Exception::FileNotFound) [static]

Test if a given file is readable.

Parameters:
name the name of the file
Returns:
true if the file can be read
static bool BALL::File::isTransformationEnabled ( Transformation  transformation  )  [static]
bool BALL::File::isValid (  )  const

Test if the file is valid. If the filename was not set, false is returned. This function uses std::fstream::good().

Returns:
bool true if the file is valid

Reimplemented in BALL::ResourceFile.

Referenced by BALL::TRegularData3D< ValueType >::binaryRead(), BALL::TRegularData2D< ValueType >::binaryRead(), BALL::TRegularData1D< ValueType >::binaryRead(), BALL::TRegularData3D< ValueType >::binaryWrite(), and BALL::TRegularData1D< ValueType >::binaryWrite().

bool BALL::File::isWritable (  )  const throw (Exception::FileNotFound)

Test if the file is writeable.

Returns:
true if the file is writeable
static bool BALL::File::isWritable ( String  name  )  throw (Exception::FileNotFound) [static]

Test if a given file is writeable.

Parameters:
name the name of the file
Returns:
true if the file is writeable
static bool BALL::File::move ( const String source_name,
const String destination_name 
) throw (Exception::FileNotFound) [static]

Move a given file to a given destination. If a file with the destination name exists already, nothing happens.

Parameters:
source_name the name of the source file
destination_name the name of the destination file
Returns:
true if copying was successfull
bool BALL::File::moveTo ( const String destination_name  )  throw (Exception::FileNotFound)

Move the file to a given destination. If a file with the destination name exists already, nothing happens.

Parameters:
destination_name the name of the destination file
Returns:
true if copying was successfull
bool BALL::File::open ( const String name,
File::OpenMode  open_mode = std::ios::in 
) throw (Exception::FileNotFound)

Open a given file. The standard constructor uses this method.

Parameters:
name the name of the file
open_mode the open mode, default is IN
Returns:
bool true if the file could be opened

Reimplemented in BALL::DCDFile, and BALL::DSN6File.

bool BALL::File::operator!= ( const File file  )  const

Inequality comparison operator. Two File objects are inequal if they point not to the same canonized filename.

const File& BALL::File::operator= ( const File file  ) 

Assignment operator. Assign the filename from file . The file is not opend.

Referenced by BALL::XYZFile::operator=().

bool BALL::File::operator== ( const File file  )  const

Equality comparison operator. Two File objects are equal if they point to the same canonized filename.

static void BALL::File::registerTransformation ( const String pattern,
const String exec 
) [static]
bool BALL::File::remove (  ) 

Remove the file.

Returns:
bool true if the file could be removed
static bool BALL::File::remove ( String  name  )  [static]

Remove the given file.

Parameters:
name the name of the file to be removed
Returns:
bool true if the file could be removed

Referenced by main().

static bool BALL::File::rename ( String  old_path,
String  new_path 
) throw (Exception::FileNotFound) [static]

Rename a file.

Parameters:
old_path the path and name of the file to be renamed
new_path the new path and name of the file
Returns:
bool true if the file could be renamed
bool BALL::File::renameTo ( const String new_path  )  throw (Exception::FileNotFound)

Rename the file to a given name. If a file with the destination name exists already, nothing happens.

Parameters:
new_path the new path and name of the file
Returns:
bool true if the file could be renamed
bool BALL::File::reopen ( File::OpenMode  open_mode  )  throw (Exception::FileNotFound)

Reopen the file with a different mode. The file is closed and reopend.

Parameters:
open_mode the new mode
Returns:
bool true if the file could be reopend
bool BALL::File::reopen (  )  throw (Exception::FileNotFound)

Reopen the file. The file is closed and reopend.

Returns:
bool true if the file could be reopend
void BALL::File::setName ( const String name  ) 

Close the file and point to an other file.

Parameters:
name the new file
bool BALL::File::truncate ( Size  size = 0  )  throw (Exception::FileNotFound)

Truncate the file.

Parameters:
size the new size of the file
Returns:
bool true if the file could be truncated
static bool BALL::File::truncate ( String  path,
Size  size = 0 
) throw (Exception::FileNotFound) [static]

Truncate a given file.

Parameters:
path the path to the file
size the new size of the file
Returns:
bool true if the file could be truncated
static void BALL::File::unregisterTransformation ( const String pattern  )  [static]

Member Data Documentation

Append. Seek to end before each write operation.

Seek to end directly after opening.

Binary mode.

const OpenMode BALL::File::MODE_IN [static]

Open for input (default).

Open for output.

Truncate an existing file.

Reimplemented in BALL::PDBFile.

Prefix for filenames that are created through the execution of commands "exec:".

Prefix for files (to mimick URL-like behavior) "file:".

Prefix for FTP-transfers "ftp://".

Prefix for HTTP-transfer "http://".