otsdaq  v2_01_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/ConfigurationPluginDataFormats/XDAQContextConfiguration.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 
16 namespace ots
17 {
18 
20 {
21 
22 public:
23  //when no configuration, e.g. Wizard Mode, then
24  // name and contextName are derived from the class name and LID
26  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor,
27  const std::string& name, const std::string& contextName) :
28  descriptor_ (descriptor),
29  contextDescriptor_ (descriptor?descriptor->getContextDescriptor():0),
30  name_ (name), // this is the config app name
31  contextName_ (contextName), // this is the config parent context name
32  id_ (descriptor?descriptor->getLocalId():0),
33  class_ (descriptor?descriptor->getClassName():""),
34  contextURL_ (contextDescriptor_?contextDescriptor_->getURL():""),
35  URN_ (descriptor?descriptor->getURN():""),
36  URL_ (contextURL_ + "/" + URN_),
37  port_ (0),
38  status_ ("Unknown")
39  {
40  //when no configuration, e.g. Wizard Mode, then
41  // name and contextName are derived from the class name and LID
42  if(name_ == "") name_ = id_;
43  if(contextName_ == "") contextName_ = class_;
44 
45  // __COUTV__(name_);
46  // __COUTV__(contextName_);
47  // __COUTV__(id_);
48  // __COUTV__(contextURL_);
49  // __COUTV__(URN_);
50  // __COUTV__(URL_);
51  // __COUTV__(port_);
52  // __COUTV__(class_);
53 
54 
55  }
56 
57  ~SupervisorInfo(void)
58  {;}
59 
60  //BOOLs -------------------
61  bool isGatewaySupervisor (void) const { return class_ == XDAQContextConfiguration::GATEWAY_SUPERVISOR_CLASS; }
62  bool isWizardSupervisor (void) const { return class_ == XDAQContextConfiguration::WIZARD_SUPERVISOR_CLASS; }
63  bool isTypeFESupervisor (void) const { return XDAQContextConfiguration::FETypeClassNames_.find(class_) != XDAQContextConfiguration::FETypeClassNames_.end(); }
64  bool isTypeDMSupervisor (void) const { return XDAQContextConfiguration::DMTypeClassNames_.find(class_) != XDAQContextConfiguration::DMTypeClassNames_.end(); }
65  bool isTypeLogbookSupervisor (void) const { return XDAQContextConfiguration::LogbookTypeClassNames_.find(class_) != XDAQContextConfiguration::LogbookTypeClassNames_.end(); }
66  bool isTypeMacroMakerSupervisor (void) const { return XDAQContextConfiguration::MacroMakerTypeClassNames_.find(class_) != XDAQContextConfiguration::MacroMakerTypeClassNames_.end(); }
67  bool isTypeConfigurationGUISupervisor (void) const { return XDAQContextConfiguration::ConfigurationGUITypeClassNames_.find(class_) != XDAQContextConfiguration::ConfigurationGUITypeClassNames_.end(); }
68  bool isTypeChatSupervisor (void) const { return XDAQContextConfiguration::ChatTypeClassNames_.find(class_) != XDAQContextConfiguration::ChatTypeClassNames_.end(); }
69  bool isTypeConsoleSupervisor (void) const { return XDAQContextConfiguration::ConsoleTypeClassNames_.find(class_) != XDAQContextConfiguration::ConsoleTypeClassNames_.end(); }
70 
71  //Getters -------------------
72  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* getDescriptor (void) const { return descriptor_; }
73  const xdaq::ContextDescriptor* getContextDescriptor(void) const { return contextDescriptor_; }
74  const std::string& getName (void) const { return name_; }
75  const std::string& getContextName (void) const { return contextName_; }
76  const unsigned int& getId (void) const { return id_; }
77  const std::string& getClass (void) const { return class_; }
78  const std::string& getStatus (void) const { return status_; }
79  const std::string& getURL (void) const { return contextURL_; }
80  const std::string& getURN (void) const { return URN_; }
81  const std::string& getFullURL (void) const { return URL_; }
82  const uint16_t& getPort (void) const { return port_; }
83 
84  //Setters -------------------
85  void setStatus (const std::string& status) { status_ = status; }
86  void clear (void) { descriptor_ = 0; contextDescriptor_ = 0; name_ = ""; id_ = 0; contextName_ = ""; status_ = "Unknown"; }
87 
88 private:
89  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor_;
90  XDAQ_CONST_CALL xdaq::ContextDescriptor* contextDescriptor_;
91  std::string name_;
92  std::string contextName_;
93  unsigned int id_;
94  std::string class_;
95  std::string contextURL_;
96  std::string URN_;
97  std::string URL_;
98  uint16_t port_;
99  std::string status_;
100 };
101 
102 }
103 
104 #endif