SST  14.1.0
StructuralSimulationToolkit
SST::ConfigBase Class Reference

Base class to parse command line options for SST Simulation Configuration variables. More...

#include <configBase.h>

Inheritance diagram for SST::ConfigBase:
SST::ConfigShared SST::Config SST::SSTInfoConfig

Public Member Functions

int parseCmdLine (int argc, char *argv[], bool ignore_unknown=false)
 Parse command-line arguments to update configuration values. More...
 
bool wasOptionSetOnCmdLine (const std::string &option)
 Check to see if an option was set on the command line. More...
 

Static Public Member Functions

static bool parseBoolean (const std::string &arg, bool &success, const std::string &option)
 
static uint32_t parseWallTimeToSeconds (const std::string &arg, bool &success, const std::string &option)
 

Protected Member Functions

 ConfigBase (bool suppress_print)
 ConfigBase constructor. More...
 
 ConfigBase ()
 Default constructor used for serialization. More...
 
 ConfigBase (bool suppress_print, std::vector< AnnotationInfo > annotations)
 
int printUsage ()
 Called to print the help/usage message.
 
int printExtHelp (const std::string &option)
 Called to print the extended help for an option.
 
void addOption (struct option opt, const char *argname, const char *desc, std::function< int(const char *arg)> callback, std::vector< bool > annotations, std::function< std::string(void)> ext_help=std::function< std::string(void)>())
 Add options to the Config object. More...
 
void addHeading (const char *desc)
 Adds a heading to the usage output.
 
virtual std::string getUsagePrelude ()
 Called to get the prelude for the help/usage message.
 
virtual int checkArgsAfterParsing ()
 
void enableDashDashSupport (std::function< int(const char *arg)> callback)
 
void addPositionalCallback (std::function< int(int num, const char *arg)> callback)
 
std::string getRunName ()
 Get the name of the executable being run. More...
 
bool setOptionExternal (const std::string &entryName, const std::string &value)
 Set a configuration string to update configuration values.
 
bool getAnnotation (const std::string &entryName, char annotation)
 Get the value of an annotation for an option.
 

Detailed Description

Base class to parse command line options for SST Simulation Configuration variables.

NOTE: This class contains only state for parsing the command line. All options will be stored in classes derived from this class. This means that we don't need to be able to serialize anything in this class.

Constructor & Destructor Documentation

◆ ConfigBase() [1/2]

SST::ConfigBase::ConfigBase ( bool  suppress_print)
inlineprotected

ConfigBase constructor.

Meant to only be created by main function

◆ ConfigBase() [2/2]

SST::ConfigBase::ConfigBase ( )
inlineprotected

Default constructor used for serialization.

After serialization, the Config object is only used to get the values of set options and it can no longer parse arguments. Given that, it will no longer print anything, so set suppress_print_ to true. None of this class needs to be serialized because it it's state is only for parsing the arguments.

Member Function Documentation

◆ addOption()

void SST::ConfigBase::addOption ( struct option  opt,
const char *  argname,
const char *  desc,
std::function< int(const char *arg)>  callback,
std::vector< bool >  annotations,
std::function< std::string(void)>  ext_help = std::function<std::string(void)>() 
)
protected

Add options to the Config object.

The options will be added in the order they are in the input array, and across calls to the function.

◆ getRunName()

std::string SST::ConfigBase::getRunName ( )
inlineprotected

Get the name of the executable being run.

This is only avaialable after parseCmdLine() is called.

Referenced by SST::SSTInfoConfig::getUsagePrelude().

◆ parseCmdLine()

int SST::ConfigBase::parseCmdLine ( int  argc,
char *  argv[],
bool  ignore_unknown = false 
)

Parse command-line arguments to update configuration values.

Returns
Returns 0 if execution should continue. Returns -1 if there was an error. Returns 1 if run command line only asked for information to be print (e.g. –help or -V, for example).

◆ wasOptionSetOnCmdLine()

bool SST::ConfigBase::wasOptionSetOnCmdLine ( const std::string &  option)

Check to see if an option was set on the command line.

Returns
True if option was set on command line, false otherwise. Will also return false if option is unknown.

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