SST  9.0.0
StructuralSimulationToolkit
categoryInfo.h
1 #ifndef SST_CORE_CATEGORY_INFO_H
2 #define SST_CORE_CATEGORY_INFO_H
3 
4 #include <vector>
5 #include <string>
6 
7 namespace SST {
8 namespace ELI {
9 
11  public:
12  uint32_t category() const {
13  return cat_;
14  }
15 
16  static const char* categoryName(int cat){
17  switch(cat){
18  case COMPONENT_CATEGORY_PROCESSOR:
19  return "PROCESSOR COMPONENT";
20  case COMPONENT_CATEGORY_MEMORY:
21  return "MEMORY COMPONENT";
22  case COMPONENT_CATEGORY_NETWORK:
23  return "NETWORK COMPONENT";
24  case COMPONENT_CATEGORY_SYSTEM:
25  return "SYSTEM COMPONENT";
26  default:
27  return "UNCATEGORIZED COMPONENT";
28  }
29  }
30 
31  void toString(std::ostream& UNUSED(os)) const {
32  os << " CATEGORY: " << categoryName(cat_) << "\n";
33  }
34 
35  template <class XMLNode> void outputXML(XMLNode* UNUSED(node)){
36  }
37 
38  protected:
39  template <class T> ProvidesCategory(T* UNUSED(t)) :
40  cat_(T::ELI_getCategory())
41  {
42  }
43 
44  private:
45  uint32_t cat_;
46 };
47 
48 #define SST_ELI_CATEGORY_INFO(cat) \
49  static uint32_t ELI_getCategory() { \
50  return cat; \
51  }
52 
53 }
54 }
55 
56 #endif
57 
58 
Definition: categoryInfo.h:10