1 #ifndef _ots_SupervisorInfo_h_
2 #define _ots_SupervisorInfo_h_
5 #include "otsdaq/Macros/CoutMacros.h"
6 #include "otsdaq/TablePlugins/XDAQContextTable/XDAQContextTable.h"
8 #pragma GCC diagnostic push
9 #pragma GCC diagnostic ignored "-Wunused-parameter"
10 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
12 #pragma GCC diagnostic ignored "-Wcatch-value"
15 #pragma GCC diagnostic ignored "-Wdeprecated-copy"
17 #include <xdaq/Application.h>
18 #pragma GCC diagnostic pop
19 #include "otsdaq/Macros/XDAQApplicationMacros.h"
29 SupervisorInfo(XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor,
const std::string& name,
const std::string& contextName)
30 : descriptor_(descriptor)
31 , contextDescriptor_(descriptor ? descriptor->getContextDescriptor() : 0)
33 , contextName_(contextName)
34 , id_(descriptor ? descriptor->getLocalId() : 0)
35 , class_(descriptor ? descriptor->getClassName() :
"")
36 , contextURL_(contextDescriptor_ ? contextDescriptor_->getURL() :
"")
38 , URN_(descriptor ? descriptor->getURN() :
"")
39 , URL_(contextURL_ +
"/" + URN_)
46 name_ =
"LID-" + std::to_string(id_);
47 if(contextName_ ==
"")
48 contextName_ = class_;
66 unsigned int progress, id;
68 time_t lastStatusTime;
69 std::string url, parent_url;
70 std::string class_name;
73 static const std::string APP_STATUS_UNKNOWN;
74 static const std::string APP_STATUS_NOT_MONITORED;
77 bool isGatewaySupervisor (
void)
const {
return class_ == XDAQContextTable::GATEWAY_SUPERVISOR_CLASS; }
78 bool isWizardSupervisor (
void)
const {
return class_ == XDAQContextTable::WIZARD_SUPERVISOR_CLASS; }
79 bool isTypeFESupervisor (
void)
const {
return XDAQContextTable::FETypeClassNames_.find(class_) != XDAQContextTable::FETypeClassNames_.end(); }
80 bool isTypeDMSupervisor (
void)
const {
return XDAQContextTable::DMTypeClassNames_.find(class_) != XDAQContextTable::DMTypeClassNames_.end(); }
81 bool isTypeLogbookSupervisor (
void)
const {
return XDAQContextTable::LogbookTypeClassNames_.find(class_) != XDAQContextTable::LogbookTypeClassNames_.end(); }
82 bool isTypeMacroMakerSupervisor (
void)
const {
return XDAQContextTable::MacroMakerTypeClassNames_.find(class_) != XDAQContextTable::MacroMakerTypeClassNames_.end(); }
83 bool isTypeConfigurationGUISupervisor (
void)
const {
return XDAQContextTable::ConfigurationGUITypeClassNames_.find(class_) != XDAQContextTable::ConfigurationGUITypeClassNames_.end(); }
84 bool isTypeChatSupervisor (
void)
const {
return XDAQContextTable::ChatTypeClassNames_.find(class_) != XDAQContextTable::ChatTypeClassNames_.end(); }
85 bool isTypeConsoleSupervisor (
void)
const {
return XDAQContextTable::ConsoleTypeClassNames_.find(class_) != XDAQContextTable::ConsoleTypeClassNames_.end(); }
86 bool isTypeCodeEditorSupervisor (
void)
const {
return XDAQContextTable::CodeEditorTypeClassNames_.find(class_) != XDAQContextTable::CodeEditorTypeClassNames_.end(); }
87 bool isTypeARTDAQSupervisor (
void)
const {
return class_ == XDAQContextTable::ARTDAQ_SUPERVISOR_CLASS; }
90 XDAQ_CONST_CALL xdaq::ApplicationDescriptor*
getDescriptor (
void)
const {
return descriptor_; }
91 const xdaq::ContextDescriptor* getContextDescriptor (
void)
const {
return contextDescriptor_; }
92 const std::string& getName (
void)
const {
return name_; }
93 const std::string& getHostname (
void)
const {
return hostname_; }
94 const std::string& getContextName (
void)
const {
return contextName_; }
95 const unsigned int& getId (
void)
const {
return id_; }
96 const std::string& getClass (
void)
const {
return class_; }
97 const std::string& getStatus (
void)
const {
return status_; }
98 time_t getLastStatusTime (
void)
const {
return lastStatusTime_; }
99 const unsigned int& getProgress (
void)
const {
return progress_; }
100 const std::string& getDetail (
void)
const {
return detail_; }
101 const std::string& getURL (
void)
const {
return contextURL_; }
102 const std::string& getURN (
void)
const {
return URN_; }
103 const std::string& getFullURL (
void)
const {
return URL_; }
104 const uint16_t& getPort (
void)
const {
return port_; }
105 const std::map<std::string, SubappInfo>& getSubappInfo (
void)
const {
return subapps_; }
108 void setStatus(
const std::string& status,
const unsigned int progress,
const std::string& detail =
"");
109 void setSubappStatus(
const std::string& name,
const std::string& status,
const unsigned int progress,
const std::string& detail =
"" );
110 void copySubappStatus(
const SubappInfo& info);
111 void clearSubapps() { subapps_.clear(); };
114 static std::string serializeSubappInfos(std::vector<SubappInfo> infos);
115 static std::vector<SubappInfo> deserializeSubappInfos(std::string info_string);
119 static std::string extractHostname (
const std::string& URL);
121 XDAQ_CONST_CALL xdaq::ApplicationDescriptor* descriptor_;
122 XDAQ_CONST_CALL xdaq::ContextDescriptor* contextDescriptor_;
124 std::string contextName_;
127 std::string contextURL_;
128 std::string hostname_;
133 unsigned int progress_;
135 time_t lastStatusTime_;
136 std::map<std::string, SubappInfo> subapps_;
void setStatus(const std::string &status, const unsigned int progress, const std::string &detail="")
Setters ----------------—.
bool isGatewaySupervisor(void) const
BOOLs ----------------—.
XDAQ_CONST_CALL xdaq::ApplicationDescriptor * getDescriptor(void) const
Getters ----------------—.
SupervisorInfo(XDAQ_CONST_CALL xdaq::ApplicationDescriptor *descriptor, const std::string &name, const std::string &contextName)
std::string name
Also key in map.