12#ifndef SST_CORE_ELI_PROFILEPOINTINFO_H
13#define SST_CORE_ELI_PROFILEPOINTINFO_H
15#include "sst/core/eli/elibase.h"
23template <
class T,
class Enable =
void>
26 static const std::vector<SST::ElementInfoProfilePoint>& get()
28 static std::vector<SST::ElementInfoProfilePoint> var = {};
36 static const std::vector<SST::ElementInfoProfilePoint>& get() {
return T::ELI_getProfilePoints(); }
42 const std::vector<ElementInfoProfilePoint>& getProfilePoints()
const {
return points_; }
44 void toString(std::ostream& os)
const;
46 template <
class XMLNode>
47 void outputXML(XMLNode* node)
const
51 auto* element =
new XMLNode(
"ProfilePoint");
52 element->SetAttribute(
"Index", idx);
53 element->SetAttribute(
"Name", point.name);
54 element->SetAttribute(
"Description", point.description ? point.description :
"none");
55 element->SetAttribute(
"Interface", point.superclass ? point.superclass :
"none");
56 node->LinkEndChild(element);
67 std::vector<ElementInfoProfilePoint> points_;
74#define SST_ELI_DOCUMENT_PROFILE_POINTS(...) \
75 static const std::vector<SST::ElementInfoProfilePoint>& ELI_getProfilePoints() \
77 static std::vector<SST::ElementInfoProfilePoint> var = { __VA_ARGS__ }; \
78 auto parent = SST::ELI::InfoProfilePoints< \
79 std::conditional<(__EliDerivedLevel > __EliBaseLevel), __LocalEliBase, __ParentEliBase>::type>::get(); \
80 SST::ELI::combineEliInfo(var, parent); \
84#define SST_ELI_DELETE_PROFILE_POINT(point) \
86 point, nullptr, nullptr \
Definition: profilePointInfo.h:40
Definition: profilePointInfo.h:25
Definition: elibase.h:130