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 add (const Keywords &keys)
 Add keywords from one keyword object to another. 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 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...
 
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...
 
bool exists (const std::string &k) const
 Check if there is a keyword with name k. More...
 
std::string get (const unsigned k) const
 Get the ith keyword. More...
 
bool getDefaultValue (std::string key, std::string &def) const
 Get the value of the default for the keyword named key. More...
 
std::vector< std::string > getKeys () const
 Reference to keys. More...
 
std::string getKeyword (const unsigned i) const
 Return the ith keyword. More...
 
bool getLogicalDefault (std::string key, bool &def) const
 find out whether flag key is on or off by default. More...
 
std::string getOutputComponentDescription (const std::string &name) const
 Get the description of this component. More...
 
std::string getTooltip (const std::string &name) const
 Get the description of a particular keyword. More...
 
void isAnalysis ()
 
void isDriver ()
 
bool numbered (const std::string &k) const
 Check if numbered keywords are allowed for this action. More...
 
bool outputComponentExists (const std::string &name, const bool &custom) const
 Has a component with this name been added? More...
 
void print (FILE *out) const
 Print the documentation to a file (use by PLUMED::CLTool::readCommandLineArgs) More...
 
void print (Log &log) const
 Print the documentation to the log file (used by PLMD::Action::error) More...
 
void print_html () const
 Print an html version of the documentation. More...
 
void print_spelling () const
 Print a file containing the list of keywords for a particular action (used for spell checking) More...
 
void print_template (const std::string &actionname, bool include_optional) const
 Print the template version for the documentation. More...
 
void print_vim () const
 Print keywords in form readable by vim. More...
 
void remove (const std::string &k)
 Remove the keyword with name k. More...
 
void removeComponent (const std::string &name)
 Remove a component with a particular name from the keywords. More...
 
void reserve (const std::string &t, const std::string &k, const std::string &d)
 Reserve a keyword. More...
 
bool reserved (const std::string &k) const
 Check the keyword k has been reserved. More...
 
void reserveFlag (const std::string &k, const bool def, const std::string &d)
 Reserve a flag. More...
 
void reset_style (const std::string &k, const std::string &style)
 Change the style of a keyword. More...
 
void setComponentsIntroduction (const std::string &instr)
 Set the text that introduces how the components for this action are introduced. More...
 
unsigned size () const
 Return the number of defined keywords. More...
 
bool style (const std::string &k, const std::string &t) const
 Check if the keyword with name k has style t. More...
 
void use (const std::string &k)
 Use one of the reserved keywords. 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, FILE *out) const
 Print a particular keyword (copy of the above that works with files) More...
 
void printKeyword (const std::string &j, Log &log) const
 Print a particular keyword. More...
 

Private Attributes

std::map< std::string, bool > allowmultiple
 Do we allow stuff like key1, key2 etc. 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::map< std::string, bool > booldefs
 The default values for the flags (are they on or of) More...
 
std::map< std::string, std::string > cdocs
 The documentation for a particular component. More...
 
std::map< std::string, std::string > ckey
 The keyword that turns on a particular component. More...
 
std::vector< std::string > cnames
 The names of all the possible components for an action. More...
 
std::string cstring
 The string that should be printed out to describe how the components work for this particular action. More...
 
std::map< std::string, std::string > documentation
 The documentation for the keywords. More...
 
bool isaction
 Is this an action or driver (this bool affects what style==atoms does in print) More...
 
bool isatoms
 This allows us to overwrite the behavior of the atoms type in analysis actions. More...
 
std::vector< std::string > keys
 The names of the allowed keywords. More...
 
std::map< std::string, std::string > numdefs
 The default values (if there are default values) for compulsory 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...
 

Friends

class Action
 

Detailed Description

This class holds the keywords and their documentation.

Constructor & Destructor Documentation

◆ Keywords()

PLMD::Keywords::Keywords ( )
inline

Constructor.

Member Function Documentation

◆ add() [1/3]

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

Add keywords from one keyword object to another.

◆ add() [2/3]

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.

◆ add() [3/3]

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.

◆ addFlag()

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.

◆ addOutputComponent()

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.

◆ copyData()

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.

◆ destroyData()

void PLMD::Keywords::destroyData ( )

Clear everything from the keywords object.

Not actually needed if your Keywords object is going out of scope.

◆ exists()

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

Check if there is a keyword with name k.

◆ get()

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

Get the ith keyword.

◆ getDefaultValue()

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

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

◆ getKeys()

std::vector<std::string> PLMD::Keywords::getKeys ( ) const
inline

Reference to keys.

◆ getKeyword()

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

Return the ith keyword.

◆ getLogicalDefault()

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

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

◆ getOutputComponentDescription()

std::string PLMD::Keywords::getOutputComponentDescription ( const std::string &  name) const

Get the description of this component.

◆ getTooltip()

std::string PLMD::Keywords::getTooltip ( const std::string &  name) const

Get the description of a particular keyword.

◆ isAnalysis()

void PLMD::Keywords::isAnalysis ( )
inline

◆ isDriver()

void PLMD::Keywords::isDriver ( )
inline

◆ numbered()

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

Check if numbered keywords are allowed for this action.

◆ outputComponentExists()

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

Has a component with this name been added?

◆ print() [1/2]

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

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

◆ print() [2/2]

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

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

◆ print_html()

void PLMD::Keywords::print_html ( ) const

Print an html version of the documentation.

◆ print_html_item()

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

Print the documentation for the jth keyword in html.

◆ print_spelling()

void PLMD::Keywords::print_spelling ( ) const

Print a file containing the list of keywords for a particular action (used for spell checking)

◆ print_template()

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

Print the template version for the documentation.

◆ print_vim()

void PLMD::Keywords::print_vim ( ) const

Print keywords in form readable by vim.

◆ printKeyword() [1/2]

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

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

◆ printKeyword() [2/2]

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

Print a particular keyword.

◆ remove()

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

Remove the keyword with name k.

◆ removeComponent()

void PLMD::Keywords::removeComponent ( const std::string &  name)

Remove a component with a particular name from the keywords.

◆ reserve()

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

Reserve a keyword.

◆ reserved()

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

Check the keyword k has been reserved.

◆ reserveFlag()

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

Reserve a flag.

◆ reset_style()

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

Change the style of a keyword.

◆ setComponentsIntroduction()

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

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

◆ size()

unsigned PLMD::Keywords::size ( ) const

Return the number of defined keywords.

◆ style()

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

Check if the keyword with name k has style t.

◆ use()

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

Use one of the reserved keywords.

Friends And Related Function Documentation

◆ Action

friend class Action
friend

Member Data Documentation

◆ allowmultiple

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

Do we allow stuff like key1, key2 etc.

◆ atomtags

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.

◆ booldefs

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

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

◆ cdocs

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

The documentation for a particular component.

◆ ckey

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

The keyword that turns on a particular component.

◆ cnames

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

The names of all the possible components for an action.

◆ cstring

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

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

◆ documentation

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

The documentation for the keywords.

◆ isaction

bool PLMD::Keywords::isaction
private

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

◆ isatoms

bool PLMD::Keywords::isatoms
private

This allows us to overwrite the behavior of the atoms type in analysis actions.

◆ keys

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

The names of the allowed keywords.

◆ numdefs

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

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

◆ reserved_keys

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

The names of the reserved keywords.

◆ types

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: