12 #ifndef SST_CORE_ELI_SUBCOMPSLOTINFO_H 13 #define SST_CORE_ELI_SUBCOMPSLOTINFO_H 15 #include "sst/core/eli/elibase.h" 23 template <
class T,
class Enable =
void>
26 static const std::vector<SST::ElementInfoSubComponentSlot>&
get()
28 static std::vector<SST::ElementInfoSubComponentSlot> var = {};
36 static const std::vector<SST::ElementInfoSubComponentSlot>&
get() {
return T::ELI_getSubComponentSlots(); }
42 const std::vector<ElementInfoSubComponentSlot>& getSubComponentSlots()
const {
return slots_; }
44 void toString(std::ostream& os)
const;
46 template <
class XMLNode>
47 void outputXML(XMLNode* node)
const 51 auto* element =
new XMLNode(
"SubComponentSlot");
52 element->SetAttribute(
"Index", idx);
53 element->SetAttribute(
"Name", slot.name);
54 element->SetAttribute(
"Description", slot.description ? slot.description :
"none");
55 element->SetAttribute(
"Interface", slot.superclass ? slot.superclass :
"none");
56 node->LinkEndChild(element);
67 std::vector<ElementInfoSubComponentSlot> slots_;
74 #define SST_ELI_DOCUMENT_SUBCOMPONENT_SLOTS(...) \ 75 static const std::vector<SST::ElementInfoSubComponentSlot>& ELI_getSubComponentSlots() \ 77 static std::vector<SST::ElementInfoSubComponentSlot> var = { __VA_ARGS__ }; \ 78 auto parent = SST::ELI::InfoSubs< \ 79 std::conditional<(__EliDerivedLevel > __EliBaseLevel), __LocalEliBase, __ParentEliBase>::type>::get(); \ 80 SST::ELI::combineEliInfo(var, parent); \ 84 #define SST_ELI_DELETE_SUBCOMPONENT_SLOT(slot) \ 86 slot, nullptr, nullptr \ 89 #endif // SST_CORE_ELI_SUBCOMPSLOTINFO_H
Definition: elibase.h:129
Definition: subcompSlotInfo.h:39
Definition: subcompSlotInfo.h:24