1 #ifndef SST_CORE_SUBCOMPSLOTINFO_H
2 #define SST_CORE_SUBCOMPSLOTINFO_H
7 #include <sst/core/eli/elibase.h>
12 template <
class T,
class Enable=
void>
14 static const std::vector<SST::ElementInfoSubComponentSlot>&
get() {
15 static std::vector<SST::ElementInfoSubComponentSlot> var = { };
22 typename
MethodDetect<decltype(T::ELI_getSubComponentSlots())>::type> {
23 static const std::vector<SST::ElementInfoSubComponentSlot>&
get() {
24 return T::ELI_getSubComponentSlots();
30 const std::vector<ElementInfoSubComponentSlot>& getSubComponentSlots()
const {
34 void toString(std::ostream& os)
const;
36 template <
class XMLNode>
void outputXML(XMLNode* node)
const {
39 auto* element =
new XMLNode(
"SubComponentSlot");
40 element->SetAttribute(
"Index", idx);
41 element->SetAttribute(
"Name", slot.name);
42 element->SetAttribute(
"Description", slot.description ? slot.description :
"none");
43 element->SetAttribute(
"Interface", slot.superclass ? slot.superclass :
"none");
44 node->LinkEndChild(element);
56 std::vector<ElementInfoSubComponentSlot> slots_;
62 #define SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(...) \
63 static const std::vector<SST::ElementInfoSubComponentSlot>& ELI_getSubComponentSlots() { \
64 static std::vector<SST::ElementInfoSubComponentSlot> var = { __VA_ARGS__ } ; \
Definition: elibase.h:105
Definition: subcompSlotInfo.h:28
Definition: subcompSlotInfo.h:13