12 #ifndef SST_CORE_PARAMS_INFO_H
13 #define SST_CORE_PARAMS_INFO_H
17 #include "sst/core/params.h"
18 #include "sst/core/eli/elibase.h"
23 template <
class T,
class Enable=
void>
25 static const std::vector<SST::ElementInfoParam>&
get() {
26 static std::vector<SST::ElementInfoParam> var = { };
33 typename
MethodDetect<decltype(T::ELI_getParams())>::type> {
34 static const std::vector<SST::ElementInfoParam>&
get() {
35 return T::ELI_getParams();
41 const std::vector<ElementInfoParam>& getValidParams()
const {
45 void toString(std::ostream& os)
const;
47 template <
class XMLNode>
void outputXML(XMLNode* node)
const {
52 auto* XMLParameterElement =
new XMLNode(
"Parameter");
53 XMLParameterElement->SetAttribute(
"Index", idx);
54 XMLParameterElement->SetAttribute(
"Name", param.name);
55 XMLParameterElement->SetAttribute(
"Description", param.description ? param.description :
"none");
56 XMLParameterElement->SetAttribute(
"Default", param.defaultValue ? param.defaultValue :
"none");
57 node->LinkEndChild(XMLParameterElement);
78 std::vector<ElementInfoParam> params_;
84 #define SST_ELI_DOCUMENT_PARAMS(...) \
85 static const std::vector<SST::ElementInfoParam>& ELI_getParams() { \
86 static std::vector<SST::ElementInfoParam> var = { __VA_ARGS__ } ; \
Definition: paramsInfo.h:24
Definition: elibase.h:105
Definition: paramsInfo.h:39
Describes Parameters to a Component.
Definition: elibase.h:46
std::set< key_type, KeyCompare > KeySet_t
Definition: params.h:188