otsdaq  v2_00_00
SupervisorInfo.h
1 #ifndef _ots_SupervisorInfo_h_
2 #define _ots_SupervisorInfo_h_
3 
4 #include <string>
5 #include "otsdaq-core/Macros/CoutHeaderMacros.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 
14 
15 namespace ots
16 {
17 
19 {
20 
21 public:
23  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor,
24  const std::string& name, const std::string& contextName) :
25  descriptor_ (descriptor),
26  contextDescriptor_ (descriptor?descriptor->getContextDescriptor():0),
27  name_ (name),
28  contextName_ (contextName),
29  id_ (descriptor?descriptor->getLocalId():0),
30  class_ (descriptor?descriptor->getClassName():""),
31  contextURL_ (contextDescriptor_?contextDescriptor_->getURL():""),
32  URN_ (descriptor?descriptor->getURN():""),
33  URL_ (contextURL_ + "/" + URN_),
34  port_ (0),
35  status_ ("Unknown")
36  {
37  // __COUTV__(name_);
38  // __COUTV__(contextName_);
39  // __COUTV__(id_);
40  // __COUTV__(contextURL_);
41  // __COUTV__(URN_);
42  // __COUTV__(URL_);
43  // __COUTV__(port_);
44  // __COUTV__(class_);
45  }
46 
47  ~SupervisorInfo(void)
48  {;}
49 
50  //BOOLs -------------------
51  bool isGatewaySupervisor (void) const { return class_ == XDAQContextConfiguration::GATEWAY_SUPERVISOR_CLASS; }
52  bool isWizardSupervisor (void) const { return class_ == XDAQContextConfiguration::WIZARD_SUPERVISOR_CLASS; }
53  bool isTypeFESupervisor (void) const { return XDAQContextConfiguration::FETypeClassNames_.find(class_) != XDAQContextConfiguration::FETypeClassNames_.end(); }
54  bool isTypeDMSupervisor (void) const { return XDAQContextConfiguration::DMTypeClassNames_.find(class_) != XDAQContextConfiguration::DMTypeClassNames_.end(); }
55  bool isTypeLogbookSupervisor (void) const { return XDAQContextConfiguration::LogbookTypeClassNames_.find(class_) != XDAQContextConfiguration::LogbookTypeClassNames_.end(); }
56  bool isTypeMacroMakerSupervisor (void) const { return XDAQContextConfiguration::MacroMakerTypeClassNames_.find(class_) != XDAQContextConfiguration::MacroMakerTypeClassNames_.end(); }
57  bool isTypeConfigurationGUISupervisor (void) const { return XDAQContextConfiguration::ConfigurationGUITypeClassNames_.find(class_) != XDAQContextConfiguration::ConfigurationGUITypeClassNames_.end(); }
58  bool isTypeChatSupervisor (void) const { return XDAQContextConfiguration::ChatTypeClassNames_.find(class_) != XDAQContextConfiguration::ChatTypeClassNames_.end(); }
59  bool isTypeConsoleSupervisor (void) const { return XDAQContextConfiguration::ConsoleTypeClassNames_.find(class_) != XDAQContextConfiguration::ConsoleTypeClassNames_.end(); }
60 
61  //Getters -------------------
62  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* getDescriptor (void) const { return descriptor_; }
63  const xdaq::ContextDescriptor* getContextDescriptor(void) const { return contextDescriptor_; }
64  const std::string& getName (void) const { return name_; }
65  const std::string& getContextName (void) const { return contextName_; }
66  const unsigned int& getId (void) const { return id_; }
67  const std::string& getClass (void) const { return class_; }
68  const std::string& getStatus (void) const { return status_; }
69  const std::string& getURL (void) const { return contextURL_; }
70  const std::string& getURN (void) const { return URN_; }
71  const std::string& getFullURL (void) const { return URL_; }
72  const uint16_t& getPort (void) const { return port_; }
73 
74  //Setters -------------------
75  void setStatus (const std::string& status) { status_ = status; }
76  void clear (void) { descriptor_ = 0; contextDescriptor_ = 0; name_ = ""; id_ = 0; contextName_ = ""; status_ = "Unknown"; }
77 
78 private:
79  XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor_;
80  XDAQ_CONST_CALL xdaq::ContextDescriptor* contextDescriptor_;
81  std::string name_;
82  std::string contextName_;
83  unsigned int id_;
84  std::string class_;
85  std::string contextURL_;
86  std::string URN_;
87  std::string URL_;
88  uint16_t port_;
89  std::string status_;
90 };
91 
92 }
93 
94 #endif