00001 #ifndef _ots_SupervisorInfo_h_
00002 #define _ots_SupervisorInfo_h_
00003
00004 #include <string>
00005 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
00006 #include "otsdaq-core/ConfigurationPluginDataFormats/XDAQContextConfiguration.h"
00007
00008 #pragma GCC diagnostic push
00009 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
00010 #include "xdaq/Application.h"
00011 #include "xdaq/ContextDescriptor.h"
00012 #pragma GCC diagnostic pop
00013
00014
00015 namespace ots
00016 {
00017
00018 class SupervisorInfo
00019 {
00020
00021 public:
00022 SupervisorInfo (
00023 XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor,
00024 const std::string& name, const std::string& contextName) :
00025 descriptor_ (descriptor),
00026 contextDescriptor_ (descriptor?descriptor->getContextDescriptor():0),
00027 name_ (name),
00028 contextName_ (contextName),
00029 id_ (descriptor?descriptor->getLocalId():0),
00030 class_ (descriptor?descriptor->getClassName():""),
00031 contextURL_ (contextDescriptor_?contextDescriptor_->getURL():""),
00032 URN_ (descriptor?descriptor->getURN():""),
00033 URL_ (contextURL_ + "/" + URN_),
00034 port_ (0),
00035 status_ ("Unknown")
00036 {
00037
00038
00039
00040
00041
00042
00043
00044
00045 }
00046
00047 ~SupervisorInfo(void)
00048 {;}
00049
00050
00051 bool isGatewaySupervisor (void) const { return class_ == XDAQContextConfiguration::GATEWAY_SUPERVISOR_CLASS; }
00052 bool isWizardSupervisor (void) const { return class_ == XDAQContextConfiguration::WIZARD_SUPERVISOR_CLASS; }
00053 bool isTypeFESupervisor (void) const { return XDAQContextConfiguration::FETypeClassNames_.find(class_) != XDAQContextConfiguration::FETypeClassNames_.end(); }
00054 bool isTypeDMSupervisor (void) const { return XDAQContextConfiguration::DMTypeClassNames_.find(class_) != XDAQContextConfiguration::DMTypeClassNames_.end(); }
00055 bool isTypeLogbookSupervisor (void) const { return XDAQContextConfiguration::LogbookTypeClassNames_.find(class_) != XDAQContextConfiguration::LogbookTypeClassNames_.end(); }
00056 bool isTypeMacroMakerSupervisor (void) const { return XDAQContextConfiguration::MacroMakerTypeClassNames_.find(class_) != XDAQContextConfiguration::MacroMakerTypeClassNames_.end(); }
00057 bool isTypeConfigurationGUISupervisor (void) const { return XDAQContextConfiguration::ConfigurationGUITypeClassNames_.find(class_) != XDAQContextConfiguration::ConfigurationGUITypeClassNames_.end(); }
00058 bool isTypeChatSupervisor (void) const { return XDAQContextConfiguration::ChatTypeClassNames_.find(class_) != XDAQContextConfiguration::ChatTypeClassNames_.end(); }
00059 bool isTypeConsoleSupervisor (void) const { return XDAQContextConfiguration::ConsoleTypeClassNames_.find(class_) != XDAQContextConfiguration::ConsoleTypeClassNames_.end(); }
00060
00061
00062 XDAQ_CONST_CALL xdaq::ApplicationDescriptor* getDescriptor (void) const { return descriptor_; }
00063 const xdaq::ContextDescriptor* getContextDescriptor(void) const { return contextDescriptor_; }
00064 const std::string& getName (void) const { return name_; }
00065 const std::string& getContextName (void) const { return contextName_; }
00066 const unsigned int& getId (void) const { return id_; }
00067 const std::string& getClass (void) const { return class_; }
00068 const std::string& getStatus (void) const { return status_; }
00069 const std::string& getURL (void) const { return contextURL_; }
00070 const std::string& getURN (void) const { return URN_; }
00071 const std::string& getFullURL (void) const { return URL_; }
00072 const uint16_t& getPort (void) const { return port_; }
00073
00074
00075 void setStatus (const std::string& status) { status_ = status; }
00076 void clear (void) { descriptor_ = 0; contextDescriptor_ = 0; name_ = ""; id_ = 0; contextName_ = ""; status_ = "Unknown"; }
00077
00078 private:
00079 XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor_;
00080 XDAQ_CONST_CALL xdaq::ContextDescriptor* contextDescriptor_;
00081 std::string name_;
00082 std::string contextName_;
00083 unsigned int id_;
00084 std::string class_;
00085 std::string contextURL_;
00086 std::string URN_;
00087 std::string URL_;
00088 uint16_t port_;
00089 std::string status_;
00090 };
00091
00092 }
00093
00094 #endif