1 #ifndef SST_CORE_PARAMS_INFO_H
2 #define SST_CORE_PARAMS_INFO_H
6 #include <sst/core/params.h>
7 #include <sst/core/eli/elibase.h>
12 template <
class T,
class Enable=
void>
14 static const std::vector<SST::ElementInfoParam>&
get() {
15 static std::vector<SST::ElementInfoParam> var = { };
22 typename
MethodDetect<decltype(T::ELI_getParams())>::type> {
23 static const std::vector<SST::ElementInfoParam>&
get() {
24 return T::ELI_getParams();
30 const std::vector<ElementInfoParam>& getValidParams()
const {
34 void toString(std::ostream& os)
const;
36 template <
class XMLNode>
void outputXML(XMLNode* node)
const {
41 auto* XMLParameterElement =
new XMLNode(
"Parameter");
42 XMLParameterElement->SetAttribute(
"Index", idx);
43 XMLParameterElement->SetAttribute(
"Name", param.name);
44 XMLParameterElement->SetAttribute(
"Description", param.description ? param.description :
"none");
45 XMLParameterElement->SetAttribute(
"Default", param.defaultValue ? param.defaultValue :
"none");
46 node->LinkEndChild(XMLParameterElement);
67 std::vector<ElementInfoParam> params_;
73 #define SST_ELI_DOCUMENT_PARAMS(...) \
74 static const std::vector<SST::ElementInfoParam>& ELI_getParams() { \
75 static std::vector<SST::ElementInfoParam> var = { __VA_ARGS__ } ; \
Definition: paramsInfo.h:13
Definition: elibase.h:105
Definition: paramsInfo.h:28
Describes Parameters to a Component.
Definition: elibase.h:46
std::set< key_type, KeyCompare > KeySet_t
Definition: params.h:172