Class providing cmd() access to command line tools. More...
#include <CLToolMain.h>
Public Member Functions | |
CLToolMain () | |
~CLToolMain () | |
void | cmd (const std::string &key, const TypesafePtr &val, const std::size_t *shape) |
void | cmd (const std::string &key, const TypesafePtr &val, std::size_t nelem, const std::size_t *shape=nullptr) |
void | cmd (const std::string &key, const TypesafePtr &val=nullptr) override |
Send messages to the CLToolMain. More... | |
Static Private Member Functions | |
static int | run (int argc, char **argv, FILE *in, FILE *out, Communicator &pc) |
This is the entry point to the command line tools included in the plumed library. More... | |
Private Attributes | |
int | argc |
arguments for command-line mode: More... | |
std::vector< std::string > | argv |
arguments for command-line mode: More... | |
Communicator & | comm =*comm_fwd |
ForwardDecl< Communicator > | comm_fwd |
FILE * | in |
FILE * | out |
Class providing cmd() access to command line tools.
This class provides an interface using the "cmd()" syntax to all the command-line tools. It is only accessed via the cmd() function, which can be used to set the arguments, communicators and IO descriptors and to run the tool. It can run all the tools registered via the PLUMED_REGISTER_CLTOOL macro, or the scripts which are located in PLUMED_ROOT/scripts.
A typical usage is:
#include "CLToolMain.h" int main(int argc,char**argv){ PLMD::CLToolMain cltoolMain; cltoolMain.cmd("setArgc",&argc); cltoolMain.cmd("setArgv",argv); int ret; cltoolMain.cmd("run",&ret); return ret; }
This will run the tool registered with name argv[1] with options argv[2]...argv[argc-1].
This class is also used in the PlumedMain class to provide the same functionalities through the external plumed interface, which is available also for C and FORTRAN. Thus, the preferred approach is to do something like
#include "Plumed.h" int main(int argc,char**argv){ PLMD::Plumed p; p.cmd("CLTool setArgc",&argc); p.cmd("CLTool setArgv",argv); int ret; p.cmd("CLTool run",&ret); return ret; }
See the file main.cpp for a similar example.
PLMD::CLToolMain::CLToolMain | ( | ) |
PLMD::CLToolMain::~CLToolMain | ( | ) |
|
inlineinherited |
|
inlineinherited |
|
overridevirtual |
Send messages to the CLToolMain.
Implements PLMD::WithCmd.
|
staticprivate |
This is the entry point to the command line tools included in the plumed library.
|
private |
arguments for command-line mode:
|
private |
arguments for command-line mode:
|
private |
|
private |
|
private |
|
private |
Hosted by GitHub | 1.8.17 |