Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
PLMD::Log Class Reference

Class containing the log stream. More...

#include <Log.h>

Inheritance diagram for PLMD::Log:
Inheritance graph
[legend]

Public Member Functions

OFileaddConstantField (const std::string &)
 
void backupAllFiles (const std::string &str)
 This backs up all the files that would have been created with the name str. More...
 
void backupFile (const std::string &bstring, const std::string &fname)
 Backup a file by giving it a different name. More...
 
OFileclearFields ()
 
Resets the list of fields. More...
 
void close ()
 Closes the file Should be used only for explicitely opened files. More...
 
OFileenforceBackup ()
 Enforce backup, even if the attached plumed object is restarting. More...
 
OFileenforceRestart ()
 Enforce restart, also if the attached plumed object is not restarting. More...
 
FileBaseenforceSuffix (const std::string &suffix)
 Enforce suffix. More...
 
bool FileExist (const std::string &path)
 Check if the file exists. More...
 
FileBaseflush () override
 Flush a file. More...
 
OFilefmtField (const std::string &)
 Set the format for writing double precision fields. More...
 
OFilefmtField ()
 Reset the format for writing double precision fields to its default. More...
 
FILE * getFILE () const
 Get the underlying file pointer. 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...
 
FileBaselink (FILE *)
 Link to an already open filed. More...
 
FileBaselink (PlumedMain &)
 Link to a PlumedMain object Automatically links also the corresponding Communicator. More...
 
FileBaselink (Communicator &)
 Link to a Communicator object. More...
 
FileBaselink (Action &)
 Link to an Action object. More...
 
FileBaselink (Communicator &)
 Allows overloading of link. More...
 
FileBaselink (Action &)
 Allows overloading of link. More...
 
FileBaselink (PlumedMain &)
 Allows overloading of link. More...
 
FileBaselink (FILE *)
 Allows overloading of link. More...
 
OFilelink (OFile &)
 Allows linking this OFile to another one. More...
 
virtual FileBaseopen (const std::string &name)=0
 Allows overloading of open. More...
 
OFileopen (const std::string &name) override
 Opens the file using automatic append/backup. More...
 
 operator bool () const
 Check for error/eof. More...
 
int printf (const char *fmt,...)
 Formatted output with explicit format - a la printf. More...
 
OFileprintField (const std::string &, double)
 Set the value of a double precision field. More...
 
OFileprintField (const std::string &, int)
 Set the value of a int field. More...
 
OFileprintField (const std::string &, const std::string &)
 Set the value of a string field. More...
 
OFileprintField (Value *val, const double &v)
 Print a value. More...
 
OFileprintField ()
 Close a line. More...
 
OFilerewind ()
 Rewind a file. More...
 
void setBackupString (const std::string &)
 Set the string name to be used for automatic backup. More...
 
void setHeavyFlush ()
 Set heavyFlush flag. More...
 
OFilesetLinePrefix (const std::string &)
 Set the prefix for output. More...
 
OFilesetupPrintValue (Value *val)
 Used to setup printing of values. More...
 

Static Public Member Functions

static std::string appendSuffix (const std::string &path, const std::string &suffix)
 Append suffix. More...
 

Protected Attributes

Actionaction
 pointer to corresponding action. NULL if not linked More...
 
bool cloned
 Control closing on destructor. More...
 
Communicatorcomm
 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...
 
PlumedMainplumed
 pointer to main plumed object. NULL if not linked More...
 

Detailed Description

Class containing the log stream.

It is similar to a FILE stream. It allows a printf() function, and also to write with a << operator. Moreover, it can prefix lines with the "PLUMED:" prefix, useful to grep out plumed log from output

Member Function Documentation

◆ addConstantField()

OFile & PLMD::OFile::addConstantField ( const std::string &  name)
inherited

◆ appendSuffix()

std::string PLMD::FileBase::appendSuffix ( const std::string &  path,
const std::string &  suffix 
)
staticinherited

Append suffix.

It appends the desired suffix to the string. Notice that it conserves some suffix (e.g. gz/xtc/trr).

◆ backupAllFiles()

void PLMD::OFile::backupAllFiles ( const std::string &  str)
inherited

This backs up all the files that would have been created with the name str.

It is used in analysis when you are not restarting. Analysis output files at different times, which are names analysis.0.<filename>, analysis.1.<filename> and <filename>, are backed up to bck.0.analysis.0.<filename>, bck.0.analysis.1.<filename> and bck.0.<filename>

◆ backupFile()

void PLMD::OFile::backupFile ( const std::string &  bstring,
const std::string &  fname 
)
inherited

Backup a file by giving it a different name.

◆ clearFields()

OFile & PLMD::OFile::clearFields ( )
inherited


Resets the list of fields.

As it is only possible to add new constant fields (addConstantField()), this method can be used to clean the field list.

◆ close()

void PLMD::FileBase::close ( )
inherited

Closes the file Should be used only for explicitely opened files.

◆ enforceBackup()

OFile & PLMD::OFile::enforceBackup ( )
inherited

Enforce backup, even if the attached plumed object is restarting.

◆ enforceRestart()

OFile & PLMD::OFile::enforceRestart ( )
inherited

Enforce restart, also if the attached plumed object is not restarting.

Useful for tests

◆ enforceSuffix()

FileBase & PLMD::FileBase::enforceSuffix ( const std::string &  suffix)
inherited

Enforce suffix.

Overrides the one set in PlumedMain&

◆ FileExist()

bool PLMD::FileBase::FileExist ( const std::string &  path)
inherited

Check if the file exists.

◆ flush()

FileBase & PLMD::OFile::flush ( )
overridevirtualinherited

Flush a file.

Reimplemented from PLMD::FileBase.

◆ fmtField() [1/2]

OFile & PLMD::OFile::fmtField ( const std::string &  fmt)
inherited

Set the format for writing double precision fields.

◆ fmtField() [2/2]

OFile & PLMD::OFile::fmtField ( )
inherited

Reset the format for writing double precision fields to its default.

◆ getFILE()

FILE * PLMD::FileBase::getFILE ( ) const
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.

◆ getMode()

std::string PLMD::FileBase::getMode ( ) const
inlineinherited

Retrieve the mode.

◆ getPath()

std::string PLMD::FileBase::getPath ( ) const
inlineinherited

Retrieve the path.

◆ getSuffix()

std::string PLMD::FileBase::getSuffix ( ) const
inherited

Get the file suffix.

◆ isOpen()

bool PLMD::FileBase::isOpen ( )
inherited

Check if a file is open.

◆ link() [1/9]

FileBase & PLMD::FileBase::link ( FILE *  fp)
inherited

Link to an already open filed.

◆ link() [2/9]

FileBase & PLMD::FileBase::link ( PlumedMain plumed)
inherited

Link to a PlumedMain object Automatically links also the corresponding Communicator.

◆ link() [3/9]

FileBase & PLMD::FileBase::link ( Communicator comm)
inherited

Link to a Communicator object.

◆ link() [4/9]

FileBase & PLMD::FileBase::link ( Action action)
inherited

Link to an Action object.

Automatically links also the corresponding PlumedMain and Communicator.

◆ link() [5/9]

FileBase & PLMD::FileBase::link
inherited

Allows overloading of link.

◆ link() [6/9]

FileBase & PLMD::FileBase::link
inherited

Allows overloading of link.

◆ link() [7/9]

FileBase & PLMD::FileBase::link
inherited

Allows overloading of link.

◆ link() [8/9]

FileBase & PLMD::FileBase::link
inherited

Allows overloading of link.

◆ link() [9/9]

OFile & PLMD::OFile::link ( OFile l)
inherited

Allows linking this OFile to another one.

In this way, everything written to this OFile will be immediately written on the linked OFile. Notice that a OFile should be either opened explicitly, linked to a FILE or linked to a OFile

◆ open() [1/2]

virtual FileBase& PLMD::FileBase::open
inherited

Allows overloading of open.

◆ open() [2/2]

OFile & PLMD::OFile::open ( const std::string &  name)
overridevirtualinherited

Opens the file using automatic append/backup.

Implements PLMD::FileBase.

◆ operator bool()

PLMD::FileBase::operator bool ( ) const
inherited

Check for error/eof.

◆ printf()

int PLMD::OFile::printf ( const char *  fmt,
  ... 
)
inherited

Formatted output with explicit format - a la printf.

◆ printField() [1/5]

OFile & PLMD::OFile::printField ( const std::string &  name,
double  v 
)
inherited

Set the value of a double precision field.

◆ printField() [2/5]

OFile & PLMD::OFile::printField ( const std::string &  name,
int  v 
)
inherited

Set the value of a int field.

◆ printField() [3/5]

OFile & PLMD::OFile::printField ( const std::string &  name,
const std::string &  v 
)
inherited

Set the value of a string field.

◆ printField() [4/5]

OFile & PLMD::OFile::printField ( Value val,
const double &  v 
)
inherited

Print a value.

◆ printField() [5/5]

OFile & PLMD::OFile::printField ( )
inherited

Close a line.

Typically used as

  of.printField("a",a).printField("b",b).printField();

◆ rewind()

OFile & PLMD::OFile::rewind ( )
inherited

Rewind a file.

◆ setBackupString()

void PLMD::OFile::setBackupString ( const std::string &  str)
inherited

Set the string name to be used for automatic backup.

◆ setHeavyFlush()

void PLMD::FileBase::setHeavyFlush ( )
inlineinherited

Set heavyFlush flag.

◆ setLinePrefix()

OFile & PLMD::OFile::setLinePrefix ( const std::string &  l)
inherited

Set the prefix for output.

Typically "PLUMED: ". Notice that lines with a prefix cannot be parsed using fields in a IFile.

◆ setupPrintValue()

OFile & PLMD::OFile::setupPrintValue ( Value val)
inherited

Used to setup printing of values.

Member Data Documentation

◆ action

Action* PLMD::FileBase::action
protectedinherited

pointer to corresponding action. NULL if not linked

◆ cloned

bool PLMD::FileBase::cloned
protectedinherited

Control closing on destructor.

If true, file will not be closed in destructor

◆ comm

Communicator* PLMD::FileBase::comm
protectedinherited

communicator. NULL if not set

◆ eof

bool PLMD::FileBase::eof
protectedinherited

Set to true when end of file is encountered.

◆ err

bool PLMD::FileBase::err
protectedinherited

Set to true when error is encountered.

◆ fp

FILE* PLMD::FileBase::fp
protectedinherited

file pointer

◆ gzfp

void* PLMD::FileBase::gzfp
protectedinherited

zip file pointer.

◆ heavyFlush

bool PLMD::FileBase::heavyFlush
protectedinherited

Set to true if you want flush to be heavy (close/reopen)

◆ mode

std::string PLMD::FileBase::mode
protectedinherited

mode of the opened file

◆ path

std::string PLMD::FileBase::path
protectedinherited

path of the opened file

◆ plumed

PlumedMain* PLMD::FileBase::plumed
protectedinherited

pointer to main plumed object. NULL if not linked


The documentation for this class was generated from the following file: