Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
PLMD::Keywords Class Reference

This class holds the keywords and their documentation. More...

#include <Keywords.h>

Classes

class  KeyType
 This class lets me pass keyword types easily. More...
 

Public Member Functions

 Keywords ()
 Constructor. More...
 
void isDriver ()
 
bool getLogicalDefault (std::string key, bool &def) const
 find out whether flag key is on or off by default. More...
 
bool getDefaultValue (std::string key, std::string &def) const
 Get the value of the default for the keyword named key. More...
 
unsigned size () const
 Return the number of defined keywords. More...
 
bool numbered (const std::string &k) const
 Check if numbered keywords are allowed for this action. More...
 
std::string getKeyword (const unsigned i) const
 Return the ith keyword. More...
 
void print (Log &log) const
 Print the documentation to the log file (used by PLMD::Action::error) More...
 
void print (FILE *out) const
 Print the documentation to a file (use by PLUMED::CLTool::readCommandLineArgs) More...
 
void reserve (const std::string &t, const std::string &k, const std::string &d, const bool isvessel=false)
 Reserve a keyword. More...
 
void reserveFlag (const std::string &k, const bool def, const std::string &d, const bool isvessel=false)
 Reserve a flag. More...
 
void use (const std::string &k)
 Use one of the reserved keywords. More...
 
std::string get (const unsigned k) const
 Get the ith keyword. More...
 
void add (const std::string &t, const std::string &k, const std::string &d)
 Add a new keyword of type t with name k and description d. More...
 
void add (const std::string &t, const std::string &k, const std::string &def, const std::string &d)
 Add a new compulsory keyword (t must equal compulsory) with name k, default value def and description d. More...
 
void addFlag (const std::string &k, const bool def, const std::string &d)
 Add a falg with name k that is by default on if def is true and off if def is false. d should provide a description of the flag. More...
 
void remove (const std::string &k)
 Remove the keyword with name k. More...
 
bool exists (const std::string &k) const
 Check if there is a keyword with name k. More...
 
bool reserved (const std::string &k) const
 Check the keyword k has been reserved. More...
 
bool style (const std::string &k, const std::string &t) const
 Check if the keyword with name k has style t. More...
 
void print_html () const
 Print an html version of the documentation. More...
 
void print_template (const std::string &actionname, bool include_optional) const
 Print the template version for the documenation. More...
 
void reset_style (const std::string &k, const std::string &style)
 Change the style of a keyword. More...
 
void add (const Keywords &keys)
 Add keywords from one keyword object to another. More...
 
void copyData (std::vector< std::string > &kk, std::vector< std::string > &rk, std::map< std::string, KeyType > &tt, std::map< std::string, bool > &am, std::map< std::string, std::string > &docs, std::map< std::string, bool > &bools, std::map< std::string, std::string > &nums, std::map< std::string, std::string > &atags, std::vector< std::string > &cnam, std::map< std::string, std::string > &ck, std::map< std::string, std::string > &cd) const
 Copy the keywords data. More...
 
void destroyData ()
 Clear everything from the keywords object. More...
 
void setComponentsIntroduction (const std::string &instr)
 Set the text that introduces how the components for this action are introduced. More...
 
void addOutputComponent (const std::string &name, const std::string &key, const std::string &descr)
 Add a potential component which can be output by this particular action. More...
 
bool outputComponentExists (const std::string &name, const bool &custom) const
 Has a component with this name been added? More...
 

Private Member Functions

void print_html_item (const std::string &) const
 Print the documentation for the jth keyword in html. More...
 
void printKeyword (const std::string &j, Log &log) const
 Print a particular keyword. More...
 
void printKeyword (const std::string &j, FILE *out) const
 Print a particular keyword (copy of the above that works with files) More...
 

Private Attributes

bool isaction
 Is this an action or driver (this bool affects what style==atoms does in print) More...
 
std::vector< std::string > keys
 The names of the allowed keywords. More...
 
std::vector< std::string > reserved_keys
 The names of the reserved keywords. More...
 
std::map< std::string, KeyTypetypes
 Whether the keyword is compulsory, optional... More...
 
std::map< std::string, bool > allowmultiple
 Do we allow stuff like key1, key2 etc. More...
 
std::map< std::string, std::string > documentation
 The documentation for the keywords. More...
 
std::map< std::string, bool > booldefs
 The default values for the flags (are they on or of) More...
 
std::map< std::string, std::string > numdefs
 The default values (if there are default values) for compulsory keywords. More...
 
std::map< std::string, std::string > atomtags
 The tags for atoms - we use this so the manual can differentiate between different ways of specifying atoms. More...
 
std::string cstring
 The string that should be printed out to describe how the components work for this particular action. More...
 
std::vector< std::string > cnames
 The names of all the possible components for an action. More...
 
std::map< std::string, std::string > ckey
 The keyword that turns on a particular component. More...
 
std::map< std::string, std::string > cdocs
 The documentation for a particular component. More...
 

Friends

class Action
 

Detailed Description

This class holds the keywords and their documentation.

Constructor & Destructor Documentation

PLMD::Keywords::Keywords ( )
inline

Constructor.

Member Function Documentation

void PLMD::Keywords::add ( const std::string &  t,
const std::string &  k,
const std::string &  d 
)

Add a new keyword of type t with name k and description d.

void PLMD::Keywords::add ( const std::string &  t,
const std::string &  k,
const std::string &  def,
const std::string &  d 
)

Add a new compulsory keyword (t must equal compulsory) with name k, default value def and description d.

void PLMD::Keywords::add ( const Keywords keys)

Add keywords from one keyword object to another.

void PLMD::Keywords::addFlag ( const std::string &  k,
const bool  def,
const std::string &  d 
)

Add a falg with name k that is by default on if def is true and off if def is false. d should provide a description of the flag.

void PLMD::Keywords::addOutputComponent ( const std::string &  name,
const std::string &  key,
const std::string &  descr 
)

Add a potential component which can be output by this particular action.

void PLMD::Keywords::copyData ( std::vector< std::string > &  kk,
std::vector< std::string > &  rk,
std::map< std::string, KeyType > &  tt,
std::map< std::string, bool > &  am,
std::map< std::string, std::string > &  docs,
std::map< std::string, bool > &  bools,
std::map< std::string, std::string > &  nums,
std::map< std::string, std::string > &  atags,
std::vector< std::string > &  cnam,
std::map< std::string, std::string > &  ck,
std::map< std::string, std::string > &  cd 
) const

Copy the keywords data.

void PLMD::Keywords::destroyData ( )

Clear everything from the keywords object.

bool PLMD::Keywords::exists ( const std::string &  k) const

Check if there is a keyword with name k.

std::string PLMD::Keywords::get ( const unsigned  k) const

Get the ith keyword.

bool PLMD::Keywords::getDefaultValue ( std::string  key,
std::string &  def 
) const

Get the value of the default for the keyword named key.

std::string PLMD::Keywords::getKeyword ( const unsigned  i) const

Return the ith keyword.

bool PLMD::Keywords::getLogicalDefault ( std::string  key,
bool &  def 
) const

find out whether flag key is on or off by default.

void PLMD::Keywords::isDriver ( )
inline
bool PLMD::Keywords::numbered ( const std::string &  k) const

Check if numbered keywords are allowed for this action.

bool PLMD::Keywords::outputComponentExists ( const std::string &  name,
const bool &  custom 
) const

Has a component with this name been added?

void PLMD::Keywords::print ( Log log) const

Print the documentation to the log file (used by PLMD::Action::error)

void PLMD::Keywords::print ( FILE *  out) const

Print the documentation to a file (use by PLUMED::CLTool::readCommandLineArgs)

void PLMD::Keywords::print_html ( ) const

Print an html version of the documentation.

void PLMD::Keywords::print_html_item ( const std::string &  key) const
private

Print the documentation for the jth keyword in html.

void PLMD::Keywords::print_template ( const std::string &  actionname,
bool  include_optional 
) const

Print the template version for the documenation.

void PLMD::Keywords::printKeyword ( const std::string &  j,
Log log 
) const
private

Print a particular keyword.

void PLMD::Keywords::printKeyword ( const std::string &  j,
FILE *  out 
) const
private

Print a particular keyword (copy of the above that works with files)

void PLMD::Keywords::remove ( const std::string &  k)

Remove the keyword with name k.

void PLMD::Keywords::reserve ( const std::string &  t,
const std::string &  k,
const std::string &  d,
const bool  isvessel = false 
)

Reserve a keyword.

bool PLMD::Keywords::reserved ( const std::string &  k) const

Check the keyword k has been reserved.

void PLMD::Keywords::reserveFlag ( const std::string &  k,
const bool  def,
const std::string &  d,
const bool  isvessel = false 
)

Reserve a flag.

void PLMD::Keywords::reset_style ( const std::string &  k,
const std::string &  style 
)

Change the style of a keyword.

void PLMD::Keywords::setComponentsIntroduction ( const std::string &  instr)

Set the text that introduces how the components for this action are introduced.

unsigned PLMD::Keywords::size ( ) const

Return the number of defined keywords.

bool PLMD::Keywords::style ( const std::string &  k,
const std::string &  t 
) const

Check if the keyword with name k has style t.

void PLMD::Keywords::use ( const std::string &  k)

Use one of the reserved keywords.

Friends And Related Function Documentation

friend class Action
friend

Member Data Documentation

std::map<std::string,bool> PLMD::Keywords::allowmultiple
private

Do we allow stuff like key1, key2 etc.

std::map<std::string,std::string> PLMD::Keywords::atomtags
private

The tags for atoms - we use this so the manual can differentiate between different ways of specifying atoms.

std::map<std::string,bool> PLMD::Keywords::booldefs
private

The default values for the flags (are they on or of)

std::map<std::string,std::string> PLMD::Keywords::cdocs
private

The documentation for a particular component.

std::map<std::string,std::string> PLMD::Keywords::ckey
private

The keyword that turns on a particular component.

std::vector<std::string> PLMD::Keywords::cnames
private

The names of all the possible components for an action.

std::string PLMD::Keywords::cstring
private

The string that should be printed out to describe how the components work for this particular action.

std::map<std::string,std::string> PLMD::Keywords::documentation
private

The documentation for the keywords.

bool PLMD::Keywords::isaction
private

Is this an action or driver (this bool affects what style==atoms does in print)

std::vector<std::string> PLMD::Keywords::keys
private

The names of the allowed keywords.

std::map<std::string,std::string> PLMD::Keywords::numdefs
private

The default values (if there are default values) for compulsory keywords.

std::vector<std::string> PLMD::Keywords::reserved_keys
private

The names of the reserved keywords.

std::map<std::string,KeyType> PLMD::Keywords::types
private

Whether the keyword is compulsory, optional...


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