SST  7.1.0
StructuralSimulationToolkit
SST::Params Class Reference

Parameter store. More...

#include <params.h>

Inheritance diagram for SST::Params:
SST::Core::Serialization::serializable

Public Types

typedef std::string key_type
 
typedef std::set< key_type, KeyCompare > KeySet_t
 

Public Member Functions

bool enableVerify (bool enable)
 Enable or disable parameter verification on an instance of Params. More...
 
size_t size () const
 Returns the size of the Params. More...
 
bool empty () const
 Returns true if the Params is empty. More...
 
 Params ()
 Create a new, empty Params.
 
 Params (const Params &old)
 Create a copy of a Params object.
 
Paramsoperator= (const Params &old)
 Assignment operator. More...
 
void clear ()
 Erases all elements.
 
size_t count (const key_type &k)
 Finds the number of elements with given key. More...
 
template<class T >
find (const std::string &k, T default_value, bool &found) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
find (const std::string &k, std::string default_value, bool &found) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
find (const std::string &k, T default_value) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
find (const std::string &k, std::string default_value) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
find (const std::string &k) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
find (const std::string &k, bool &found) const
 Find a Parameter value in the set, and return its value as a type T. More...
 
template<class T >
void find_array (const key_type &k, std::vector< T > &vec) const
 Find a Parameter value in the set, and return its value as a vector of T's. More...
 
void print_all_params (std::ostream &os, std::string prefix="") const
 Print all key/value parameter pairs to specified ostream.
 
void print_all_params (Output &out, std::string prefix="") const
 
void insert (std::string key, std::string value, bool overwrite=true)
 Add a key value pair into the param object.
 
void insert (const Params &params)
 
std::set< std::string > getKeys () const
 
Params find_prefix_params (std::string prefix) const
 Returns a new parameter object with parameters that match the specified prefix.
 
bool contains (const key_type &k)
 
void pushAllowedKeys (const KeySet_t &keys)
 
void popAllowedKeys ()
 Removes the most recent set of keys considered allowed.
 
void verifyParam (const key_type &k) const
 
void serialize_order (SST::Core::Serialization::serializer &ser) override
 
uint32_t getKey (const std::string &str) const
 
uint32_t getKey (const std::string &str)
 
friend int ::main (int argc, char *argv[])
 
- Public Member Functions inherited from SST::Core::Serialization::serializable
virtual const char * cls_name () const =0
 
virtual uint32_t cls_id () const =0
 
virtual std::string serialization_name () const =0
 

Static Public Member Functions

static void enableVerify ()
 Enable, on a global scale, parameter verification. More...
 
static const std::string & getParamName (uint32_t id)
 Given a Parameter Key ID, return the Name of the matching parameter. More...
 

Data Fields

ImplementSerializable(SST::Params) private std::vector< KeySet_tallowedKeys
 
bool verify_enabled
 

Static Public Attributes

static bool g_verify_enabled = false
 
static std::map< std::string, uint32_t > keyMap
 
static std::vector< std::string > keyMapReverse
 
static SST::Core::ThreadSafe::Spinlock keyLock
 
static uint32_t nextKeyID
 

Additional Inherited Members

- Protected Types inherited from SST::Core::Serialization::serializable
enum  cxn_flag_t { ConstructorFlag }
 
- Static Protected Member Functions inherited from SST::Core::Serialization::serializable
static void serializable_abort (uint32_t line, const char *file, const char *func, const char *obj)
 

Detailed Description

Parameter store.

Stores key-value pairs as std::strings and provides a templated find method for finding values and converting them to arbitrary types (

See also
find()).

Member Typedef Documentation

◆ key_type

typedef std::string SST::Params::key_type

Type of key (string)

◆ KeySet_t

typedef std::set<key_type, KeyCompare> SST::Params::KeySet_t

Type of a set of keys

Member Function Documentation

◆ contains()

bool SST::Params::contains ( const key_type k)
inline
Parameters
kKey to search for
Returns
True if the params contains the key, false otherwise

◆ count()

size_t SST::Params::count ( const key_type k)
inline

Finds the number of elements with given key.

Parameters
kKey of (key, value) pairs to be located.
Returns
Number of elements with specified key (either 1 or 0).

◆ empty()

bool SST::Params::empty ( ) const
inline

Returns true if the Params is empty.

(Thus begin() would equal end().)

◆ enableVerify() [1/2]

bool SST::Params::enableVerify ( bool  enable)
inline

Enable or disable parameter verification on an instance of Params.

Useful when generating a new set of Params to pass off to a module.

Referenced by find_prefix_params().

◆ enableVerify() [2/2]

static void SST::Params::enableVerify ( )
inlinestatic

Enable, on a global scale, parameter verification.

Used after construction of the config graph so that warnings are not generated during construction.

Referenced by SST::Simulation::performWireUp().

◆ find() [1/6]

template<class T >
T SST::Params::find ( const std::string &  k,
default_value,
bool &  found 
) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
default_value- Default value to return if parameter isn't found
found- set to true if the the parameter was found
Exceptions
std::invalid_argumentIf value in (key, value) can't be converted to type T, an invalid_argument exception is thrown.

References verifyParam().

Referenced by SST::Statistics::StatisticOutputConsole::checkOutputParameters(), SST::Statistics::StatisticOutputCSV::checkOutputParameters(), SST::Statistics::StatisticOutputTxt::checkOutputParameters(), SST::Statistics::StatisticOutputHDF5::checkOutputParameters(), find(), and SST::Statistics::StatisticBase::StatisticBase().

◆ find() [2/6]

template<class T >
T SST::Params::find ( const std::string &  k,
std::string  default_value,
bool &  found 
) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
default_value- Default value to return if parameter isn't found, specified as a string
found- set to true if the the parameter was found

References verifyParam().

◆ find() [3/6]

template<class T >
T SST::Params::find ( const std::string &  k,
default_value 
) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool), a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
default_value- Default value to return if parameter isn't found

◆ find() [4/6]

template<class T >
T SST::Params::find ( const std::string &  k,
std::string  default_value 
) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
default_value- Default value to return if parameter isn't found, specified as a string

◆ find() [5/6]

template<class T >
T SST::Params::find ( const std::string &  k) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name

References find().

◆ find() [6/6]

template<class T >
T SST::Params::find ( const std::string &  k,
bool &  found 
) const
inline

Find a Parameter value in the set, and return its value as a type T.

Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
found- set to true if the the parameter was found

References find().

◆ find_array()

template<class T >
void SST::Params::find_array ( const key_type k,
std::vector< T > &  vec 
) const
inline

Find a Parameter value in the set, and return its value as a vector of T's.

The array will be appended to the end of the vector. Type T must be either a basic numeric type (including bool) , a std::string, or a class that has a constructor with a std::string as its only parameter. This class uses SST::Core::from_string to do the conversion.

Parameters
k- Parameter name
vec- vector to append array items to

References verifyParam().

◆ getParamName()

static const std::string& SST::Params::getParamName ( uint32_t  id)
inlinestatic

Given a Parameter Key ID, return the Name of the matching parameter.

Parameters
idKey ID to look up
Returns
String name of the parameter

◆ operator=()

Params& SST::Params::operator= ( const Params old)
inline

Assignment operator.

Parameters
oldParam to be copied

All the elements of old are copied,

◆ pushAllowedKeys()

void SST::Params::pushAllowedKeys ( const KeySet_t keys)
inline
Parameters
keysSet of keys to consider valid to add to the stack of legal keys

Referenced by SST::Factory::CreateComponent(), SST::Factory::CreateModule(), SST::Factory::CreateModuleWithComponent(), and SST::Factory::CreateSubComponent().

◆ size()

size_t SST::Params::size ( ) const
inline

Returns the size of the Params.

◆ verifyParam()

void SST::Params::verifyParam ( const key_type k) const
inline
Parameters
kKey to check for validity
Returns
True if the key is considered allowed

References SST::Output::output(), and SST::Output::STDERR.

Referenced by find(), and find_array().


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