#include <IFile.h>
Classes | |
class | Field |
Public Member Functions | |
IFile () | |
Constructor. More... | |
~IFile () | |
Destructor. More... | |
void | allowIgnoredFields () |
Allow some of the fields in the input to be ignored. More... | |
void | allowNoEOL () |
Allow files without EOL at the end. More... | |
void | close () |
Closes the file Should be used only for explicitely opened files. More... | |
FileBase & | enforceSuffix (const std::string &suffix) |
Enforce suffix. More... | |
bool | FieldExist (const std::string &s) |
Check if a field exist. More... | |
bool | FileExist (const std::string &path) |
Check if the file exists. More... | |
virtual FileBase & | flush () |
Flushes the file to disk. More... | |
FILE * | getFILE () const |
Get the underlying file pointer. More... | |
IFile & | getline (std::string &) |
Get a full line as a string. More... | |
std::string | getMode () const |
Retrieve the mode. More... | |
std::string | getPath () const |
Retrieve the path. More... | |
std::string | getSuffix () const |
Get the file suffix. More... | |
bool | isOpen () |
Check if a file is open. More... | |
FileBase & | link (Action &) |
Link to an Action object. More... | |
FileBase & | link (Communicator &) |
Link to a Communicator object. More... | |
FileBase & | link (FILE *) |
Link to an already open filed. More... | |
FileBase & | link (PlumedMain &) |
Link to a PlumedMain object Automatically links also the corresponding Communicator. More... | |
IFile & | open (const std::string &name) override |
Opens the file. More... | |
operator bool () const | |
Check for error/eof. More... | |
void | reset (bool) |
Reset end of file. More... | |
IFile & | scanField () |
Ends a field-formatted line. More... | |
IFile & | scanField (const std::string &, double &) |
Read a double field. More... | |
IFile & | scanField (const std::string &, int &) |
Read a int field. More... | |
IFile & | scanField (const std::string &, long int &) |
Read a long int field. More... | |
IFile & | scanField (const std::string &, long unsigned &) |
Read a long unsigned field. More... | |
IFile & | scanField (const std::string &, std::string &) |
Read a string field. More... | |
IFile & | scanField (const std::string &, unsigned &) |
Read a unsigned field. More... | |
IFile & | scanField (Value *val) |
Read in a value. More... | |
IFile & | scanFieldList (std::vector< std::string > &) |
Gets the list of all fields. More... | |
void | setHeavyFlush () |
Set heavyFlush flag. More... | |
Static Public Member Functions | |
static std::string | appendSuffix (const std::string &path, const std::string &suffix) |
Append suffix. More... | |
Protected Attributes | |
Action * | action |
pointer to corresponding action. NULL if not linked More... | |
bool | cloned |
Control closing on destructor. More... | |
Communicator * | comm |
communicator. NULL if not set More... | |
bool | eof |
Set to true when end of file is encountered. More... | |
bool | err |
Set to true when error is encountered. More... | |
FILE * | fp |
file pointer More... | |
void * | gzfp |
zip file pointer. More... | |
bool | heavyFlush |
Set to true if you want flush to be heavy (close/reopen) More... | |
std::string | mode |
mode of the opened file More... | |
std::string | path |
path of the opened file More... | |
PlumedMain * | plumed |
pointer to main plumed object. NULL if not linked More... | |
Private Member Functions | |
IFile & | advanceField () |
Advance to next field (= read one line) More... | |
unsigned | findField (const std::string &name) const |
Find field index by name. More... | |
std::size_t | llread (char *, std::size_t) |
Low-level read. More... | |
Private Attributes | |
std::string | enforcedSuffix |
Enforced suffix: More... | |
bool | enforcedSuffix_ |
If true, use enforcedSuffix, else get it from PlumedMain. More... | |
std::vector< Field > | fields |
All the defined fields. More... | |
bool | ignoreFields |
Set to true if you want to allow fields to be ignored in the read in file. More... | |
bool | inMiddleOfField |
Flag set in the middle of a field reading. More... | |
bool | noEOL |
Set to true to allow files without end-of-line at the end. More... | |
Class for input files
This class provides features similar to those in the standard C "FILE*" type, but only for sequential input. See OFile for sequential output.
PLMD::IFile::IFile | ( | ) |
Constructor.
PLMD::IFile::~IFile | ( | ) |
Destructor.
|
private |
Advance to next field (= read one line)
void PLMD::IFile::allowIgnoredFields | ( | ) |
Allow some of the fields in the input to be ignored.
void PLMD::IFile::allowNoEOL | ( | ) |
Allow files without EOL at the end.
This in practice should be only used when opening plumed input files
|
staticinherited |
Append suffix.
It appends the desired suffix to the string. Notice that it conserves some suffix (e.g. gz/xtc/trr).
|
inherited |
Closes the file Should be used only for explicitely opened files.
|
inherited |
Enforce suffix.
Overrides the one set in PlumedMain&
bool PLMD::IFile::FieldExist | ( | const std::string & | s | ) |
Check if a field exist.
|
inherited |
Check if the file exists.
|
private |
Find field index by name.
|
virtualinherited |
Flushes the file to disk.
Reimplemented in PLMD::OFile.
|
inlineinherited |
Get the underlying file pointer.
It might be null even if the file is open, e.g. when the file was open as a gzipped file.
IFile & PLMD::IFile::getline | ( | std::string & | str | ) |
Get a full line as a string.
|
inlineinherited |
Retrieve the mode.
|
inlineinherited |
Retrieve the path.
|
inherited |
Get the file suffix.
|
inherited |
Check if a file is open.
Link to an Action object.
Automatically links also the corresponding PlumedMain and Communicator.
|
inherited |
Link to a Communicator object.
|
inherited |
Link to an already open filed.
|
inherited |
Link to a PlumedMain object Automatically links also the corresponding Communicator.
|
private |
Low-level read.
Note: in parallel, all processes read
|
overridevirtual |
Opens the file.
Implements PLMD::FileBase.
|
inherited |
Check for error/eof.
void PLMD::IFile::reset | ( | bool | reset | ) |
Reset end of file.
IFile & PLMD::IFile::scanField | ( | ) |
Ends a field-formatted line.
Typically used as
if.scanField("a",a).scanField("b",b).scanField();
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
double & | x | ||
) |
Read a double field.
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
int & | x | ||
) |
Read a int field.
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
long int & | x | ||
) |
Read a long int field.
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
long unsigned & | x | ||
) |
Read a long unsigned field.
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
std::string & | str | ||
) |
Read a string field.
IFile & PLMD::IFile::scanField | ( | const std::string & | name, |
unsigned & | x | ||
) |
Read a unsigned field.
IFile & PLMD::IFile::scanFieldList | ( | std::vector< std::string > & | s | ) |
Gets the list of all fields.
|
inlineinherited |
Set heavyFlush flag.
|
protectedinherited |
pointer to corresponding action. NULL if not linked
|
protectedinherited |
Control closing on destructor.
If true, file will not be closed in destructor
|
protectedinherited |
communicator. NULL if not set
|
privateinherited |
Enforced suffix:
|
privateinherited |
If true, use enforcedSuffix, else get it from PlumedMain.
|
protectedinherited |
Set to true when end of file is encountered.
|
protectedinherited |
Set to true when error is encountered.
|
private |
All the defined fields.
|
protectedinherited |
file pointer
|
protectedinherited |
zip file pointer.
|
protectedinherited |
Set to true if you want flush to be heavy (close/reopen)
|
private |
Set to true if you want to allow fields to be ignored in the read in file.
|
private |
Flag set in the middle of a field reading.
|
protectedinherited |
mode of the opened file
|
private |
Set to true to allow files without end-of-line at the end.
|
protectedinherited |
path of the opened file
|
protectedinherited |
pointer to main plumed object. NULL if not linked
Hosted by GitHub | 1.8.17 |