otsdaq  v2_03_00
SupervisorInfo.h
1 #ifndef _ots_SupervisorInfo_h_
2 #define _ots_SupervisorInfo_h_
3 
4 #include <string>
5 #include "otsdaq-core/Macros/CoutMacros.h" /* also for XDAQ_CONST_CALL */
6 #include "otsdaq-core/TablePluginDataFormats/XDAQContextTable.h"
7 
8 #pragma GCC diagnostic push
9 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
10 #include "xdaq/Application.h" /* for xdaq::ApplicationDescriptor */
11 #include "xdaq/ContextDescriptor.h" /* for xdaq::ContextDescriptor */
12 #pragma GCC diagnostic pop
13 #include "otsdaq-core/Macros/XDAQApplicationMacros.h"
14 
15 namespace ots
16 {
18 {
19  public:
20  // when no configuration, e.g. Wizard Mode, then
21  // name and contextName are derived from the class name and LID
22  SupervisorInfo(XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor,
23  const std::string& name,
24  const std::string& contextName)
25  : descriptor_(descriptor)
26  , contextDescriptor_(descriptor ? descriptor->getContextDescriptor() : 0)
27  , name_(name)
28  , // this is the config app name
29  contextName_(contextName)
30  , // this is the config parent context name
31  id_(descriptor ? descriptor->getLocalId() : 0)
32  , class_(descriptor ? descriptor->getClassName() : "")
33  , contextURL_(contextDescriptor_ ? contextDescriptor_->getURL() : "")
34  , URN_(descriptor ? descriptor->getURN() : "")
35  , URL_(contextURL_ + "/" + URN_)
36  , port_(0)
37  , status_("Unknown")
38  {
39  // when no configuration, e.g. Wizard Mode, then
40  // name and contextName are derived from the class name and LID
41  if(name_ == "")
42  name_ = id_;
43  if(contextName_ == "")
44  contextName_ = class_;
45 
46  // __COUTV__(name_);
47  // __COUTV__(contextName_);
48  // __COUTV__(id_);
49  // __COUTV__(contextURL_);
50  // __COUTV__(URN_);
51  // __COUTV__(URL_);
52  // __COUTV__(port_);
53  // __COUTV__(class_);
54  }
55 
56  ~SupervisorInfo(void) { ; }
57 
58  // BOOLs -------------------
59  bool isGatewaySupervisor(void) const
60  {
61  return class_ == XDAQContextTable::GATEWAY_SUPERVISOR_CLASS;
62  }
63  bool isWizardSupervisor(void) const
64  {
65  return class_ == XDAQContextTable::WIZARD_SUPERVISOR_CLASS;
66  }
67  bool isTypeFESupervisor(void) const
68  {
69  return XDAQContextTable::FETypeClassNames_.find(class_) !=
70  XDAQContextTable::FETypeClassNames_.end();
71  }
72  bool isTypeDMSupervisor(void) const
73  {
74  return XDAQContextTable::DMTypeClassNames_.find(class_) !=
75  XDAQContextTable::DMTypeClassNames_.end();
76  }
77  bool isTypeLogbookSupervisor(void) const
78  {
79  return XDAQContextTable::LogbookTypeClassNames_.find(class_) !=
80  XDAQContextTable::LogbookTypeClassNames_.end();
81  }
82  bool isTypeMacroMakerSupervisor(void) const
83  {
84  return XDAQContextTable::MacroMakerTypeClassNames_.find(class_) !=
85  XDAQContextTable::MacroMakerTypeClassNames_.end();
86  }
87  bool isTypeConfigurationGUISupervisor(void) const
88  {
89  return XDAQContextTable::ConfigurationGUITypeClassNames_.find(class_) !=
90  XDAQContextTable::ConfigurationGUITypeClassNames_.end();
91  }
92  bool isTypeChatSupervisor(void) const
93  {
94  return XDAQContextTable::ChatTypeClassNames_.find(class_) !=
95  XDAQContextTable::ChatTypeClassNames_.end();
96  }
97  bool isTypeConsoleSupervisor(void) const
98  {
99  return XDAQContextTable::ConsoleTypeClassNames_.find(class_) !=
100  XDAQContextTable::ConsoleTypeClassNames_.end();
101  }
102 
103  // Getters -------------------
104  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* getDescriptor(void) const
105  {
106  return descriptor_;
107  }
108  const xdaq::ContextDescriptor* getContextDescriptor(void) const
109  {
110  return contextDescriptor_;
111  }
112  const std::string& getName(void) const { return name_; }
113  const std::string& getContextName(void) const { return contextName_; }
114  const unsigned int& getId(void) const { return id_; }
115  const std::string& getClass(void) const { return class_; }
116  const std::string& getStatus(void) const { return status_; }
117  const std::string& getURL(void) const { return contextURL_; }
118  const std::string& getURN(void) const { return URN_; }
119  const std::string& getFullURL(void) const { return URL_; }
120  const uint16_t& getPort(void) const { return port_; }
121 
122  // Setters -------------------
123  void setStatus(const std::string& status) { status_ = status; }
124  void clear(void)
125  {
126  descriptor_ = 0;
127  contextDescriptor_ = 0;
128  name_ = "";
129  id_ = 0;
130  contextName_ = "";
131  status_ = "Unknown";
132  }
133 
134  private:
135  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor_;
136  XDAQ_CONST_CALL xdaq::ContextDescriptor* contextDescriptor_;
137  std::string name_;
138  std::string contextName_;
139  unsigned int id_;
140  std::string class_;
141  std::string contextURL_;
142  std::string URN_;
143  std::string URL_;
144  uint16_t port_;
145  std::string status_;
146 };
147 
148 } // namespace ots
149 
150 #endif