#include <BALL/SYSTEM/file.h>
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) | |
virtual | ~File () |
virtual void | clear () |
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 HashSet< String > | created_temp_filenames_ |
static TransformationManager | transformation_manager_ |
static Size | transformation_methods_ |
Private Member Functions | |
const File & | operator= (const File &file) |
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 | |
Assignment operator. Assign the filename from file . The file is not opend. | |
bool | open (const String &name, File::OpenMode open_mode=std::ios::in) |
bool | reopen () |
bool | reopen (File::OpenMode open_mode) |
void | close () |
const String & | getName () const |
void | setName (const String &name) |
const String & | getOriginalName () const |
Size | getSize () |
File::OpenMode | getOpenMode () const |
Type | getType (bool trace_link) const |
bool | copyTo (const String &destination_name, Size buffer_size=4096) |
bool | moveTo (const String &destination_name) |
bool | remove () |
bool | renameTo (const String &new_path) |
bool | truncate (Size size=0) |
std::fstream & | getFileStream () |
static Size | getSize (String name) |
static Type | getType (String name, bool trace_link) |
static bool | copy (String source_name, String destination_name, Size buffer_size=4096) |
static bool | move (const String &source_name, const String &destination_name) |
static bool | remove (String name) |
static bool | rename (String old_path, String new_path) |
static bool | truncate (String path, Size size=0) |
static bool | createTemporaryFilename (String &temporary, const String &suffix=".TMP") |
On-the-fly file transformation | |
| |
TransformationManager & | getTransformationManager () |
const TransformationManager & | getTransformationManager () 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 |
bool | isCanonized () const |
bool | isReadable () const |
bool | isWritable () const |
bool | isExecutable () const |
static bool | isAccessible (String name) |
static bool | isReadable (String name) |
static bool | isWritable (String name) |
static bool | isExecutable (String name) |
File Class.
Definition at line 137 of file file.h.
typedef std::ios::openmode BALL::File::OpenMode |
enum BALL::File::Type |
BALL::File::File | ( | ) |
Default constructor.
Construct new File object from the file name and open the file.
name | the name of the file to be opened | |
open_mode | the openmode to be used |
Exception::FileNotFound | if the file should be read but could not be found |
virtual BALL::File::~File | ( | ) | [virtual] |
Destructor. The file is closed.
virtual void BALL::File::clear | ( | ) | [virtual] |
Clear the File object.
Reimplemented in BALL::CCP4File, BALL::DCDFile, BALL::DSN6File, BALL::LineBasedFile, BALL::NMRStarFile, BALL::PDBFile, BALL::ResourceFile, BALL::TrajectoryFile, and BALL::TRRFile.
void BALL::File::close | ( | ) |
Close the file.
Reimplemented in BALL::ResourceFile.
static bool BALL::File::copy | ( | String | source_name, | |
String | destination_name, | |||
Size | buffer_size = 4096 | |||
) | [static] |
Copy a given file to a given destination. If a file with the destination name exists already, nothing happens.
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 |
Exception::FileNotFound | if the file could not be found |
Copy the file to a given destination. If a file with the destination name exists already, nothing happens.
destination_name | the name of the destination file | |
buffer_size | the buffer size to use while copying |
Exception::FileNotFound | if the file could not be found |
static bool BALL::File::createTemporaryFilename | ( | String & | temporary, | |
const String & | suffix = ".TMP" | |||
) | [static] |
Create a temporary filename. This method creates strings, starting at _AAAAAAA, adds the suffix /suffix/ which defaults to .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.
temporary | reference to the temporary filename |
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.
const String& BALL::File::getName | ( | ) | const |
Return the name of the file.
File::OpenMode BALL::File::getOpenMode | ( | ) | const |
Return the open mode. Default is IN.
const String& BALL::File::getOriginalName | ( | ) | const |
Return the size of a given file.
Exception::FileNotFound | if the file could not be found |
Size BALL::File::getSize | ( | ) |
Return the size of the file. If the file does not exist, 0 is returned.
Exception::FileNotFound | if the file could not be found |
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.).
Return the filetype.
trace_link | true to follow links |
Exception::FileNotFound | if the file could not be found |
Return the filetype of a given file.
name | the name of the file. | |
trace_link | true to follow links |
Exception::FileNotFound | if the file could not be found |
bool BALL::File::isAccessible | ( | ) | const |
Test if the file can be accessed.
Exception::FileNotfound | if the file could not be found |
Test if a given file can be accessed.
name | the name of the file to be tested |
bool BALL::File::isCanonized | ( | ) | const |
Test if the path of the file is canonized. The path is compared before and after call of FileSystem::canonizePath(canonized_name).
Exception::FileNotfound | if the file could not be found |
bool BALL::File::isClosed | ( | ) | const |
Test if the file is closed. The standard constructor opens the file.
bool BALL::File::isExecutable | ( | ) | const |
Test if the file is executable.
Exception::FileNotfound | if the file could not be found |
Test if a given file is executable.
name | the name of the file |
Exception::FileNotfound | if the file could not be found |
bool BALL::File::isOpen | ( | ) | const |
Test if the file is opend. The standard constructor opens the file.
bool BALL::File::isReadable | ( | ) | const |
Test if the file is readable.
Exception::FileNotfound | if the file could not be found |
Test if a given file is readable.
name | the name of the file |
Exception::FileNotfound | if the file could not be found |
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().
Reimplemented in BALL::ResourceFile.
bool BALL::File::isWritable | ( | ) | const |
Test if the file is writeable.
Exception::FileNotfound | if the file could not be found |
Test if a given file is writeable.
name | the name of the file |
Exception::FileNotfound | if the file could not be found |
static bool BALL::File::move | ( | const String & | source_name, | |
const String & | destination_name | |||
) | [static] |
Move a given file to a given destination. If a file with the destination name exists already, nothing happens.
source_name | the name of the source file | |
destination_name | the name of the destination file |
Exception::FileNotFound | if the file could not be found |
Move the file to a given destination. If a file with the destination name exists already, nothing happens.
destination_name | the name of the destination file |
Exception::FileNotFound | if the file could not be found |
bool BALL::File::open | ( | const String & | name, | |
File::OpenMode | open_mode = std::ios::in | |||
) |
Open a given file. The standard constructor uses this method.
name | the name of the file | |
open_mode | the open mode, default is IN |
Exception::FileNotFound | if the file should be read but could not be found |
Reimplemented in BALL::CCP4File, BALL::DCDFile, and BALL::DSN6File.
Inequality comparison operator. Two File objects are inequal if they point not to the same canonized filename.
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.
Remove the given file.
name | the name of the file to be removed |
Rename a file.
old_path | the path and name of the file to be renamed | |
new_path | the new path and name of the file |
Exception::FileNotFound | if the file could not be found |
Rename the file to a given name. If a file with the destination name exists already, nothing happens.
new_path | the new path and name of the file |
Exception::FileNotFound | if the file could not be found |
bool BALL::File::reopen | ( | File::OpenMode | open_mode | ) |
Reopen the file with a different mode. The file is closed and reopend.
open_mode | the new mode |
Exception::FileNotFound | if the file should be read but could not be found |
bool BALL::File::reopen | ( | ) |
Reopen the file. The file is closed and reopend.
Exception::FileNotFound | if the file should be read but could not be found |
void BALL::File::setName | ( | const String & | name | ) |
Close the file and point to an other file.
name | the new file |
Truncate the file.
size | the new size of the file |
Exception::FileNotFound | if the file could not be found |
Truncate a given file.
path | the path to the file | |
size | the new size of the file |
Exception::FileNotFound | if the file could not be found |
static void BALL::File::unregisterTransformation | ( | const String & | pattern | ) | [static] |
HashSet<String> BALL::File::created_temp_filenames_ [static, protected] |
bool BALL::File::is_open_ [protected] |
bool BALL::File::is_temporary_ [protected] |
const OpenMode BALL::File::MODE_APP [static] |
const OpenMode BALL::File::MODE_ATE [static] |
const OpenMode BALL::File::MODE_BINARY [static] |
const OpenMode BALL::File::MODE_IN [static] |
const OpenMode BALL::File::MODE_OUT [static] |
const OpenMode BALL::File::MODE_TRUNC [static] |
String BALL::File::name_ [protected] |
Reimplemented in BALL::PDBFile.
OpenMode BALL::File::open_mode_ [protected] |
String BALL::File::original_name_ [protected] |
const String BALL::File::TRANSFORMATION_EXEC_PREFIX [static] |
const String BALL::File::TRANSFORMATION_FILE_PREFIX [static] |
const String BALL::File::TRANSFORMATION_FTP_PREFIX [static] |
const String BALL::File::TRANSFORMATION_HTTP_PREFIX [static] |
TransformationManager BALL::File::transformation_manager_ [static, protected] |
Size BALL::File::transformation_methods_ [static, protected] |