1 #include "otsdaq/SupervisorInfo/SupervisorInfo.h"
5 const std::string SupervisorInfo::APP_STATUS_UNKNOWN =
"UNKNOWN";
6 const std::string SupervisorInfo::APP_STATUS_NOT_MONITORED =
"Not Monitored";
10 const unsigned int progress,
11 const std::string& detail)
19 lastStatusTime_ = time(0);
23 void SupervisorInfo::setSubappStatus(
const std::string& name,
24 const std::string& status,
25 const unsigned int progress,
26 const std::string& detail)
28 subapps_[name].name = name;
29 subapps_[name].status = status;
30 subapps_[name].progress = progress;
31 subapps_[name].detail = detail;
35 subapps_[name].lastStatusTime = time(0);
39 void SupervisorInfo::copySubappStatus(
const SubappInfo& info)
41 subapps_[info.name] = info;
45 void SupervisorInfo::clear(
void)
49 contextDescriptor_ = 0;
53 status_ = SupervisorInfo::APP_STATUS_UNKNOWN;
57 std::string SupervisorInfo::extractHostname(
const std::string& URL)
60 size_t i = URL.find(
"://");
61 if(i == std::string::npos)
66 size_t j = URL.find(
":", i);
67 if(j != std::string::npos)
71 return URL.substr(i, j);
75 std::string SupervisorInfo::serializeSubappInfos(std::vector<SubappInfo> infos)
77 std::ostringstream ostr;
78 for(
auto& info : infos)
80 ostr << info.name <<
"\n";
81 ostr << info.detail <<
"\n";
82 ostr << info.progress <<
"\n";
83 ostr << info.status <<
"\n";
84 ostr << info.lastStatusTime <<
"\n";
85 ostr << info.url <<
"\n";
86 ostr << info.class_name <<
"\n";
92 std::vector<SupervisorInfo::SubappInfo> SupervisorInfo::deserializeSubappInfos(
93 std::string info_string)
95 std::vector<SubappInfo> infos;
96 std::istringstream istr(info_string);
98 while(std::getline(istr, line))
101 thisInfo.name = line;
102 std::getline(istr, line);
103 thisInfo.detail = line;
104 std::getline(istr, line);
105 std::istringstream converter(line);
106 converter >> thisInfo.progress;
107 std::getline(istr, line);
108 thisInfo.status = line;
109 std::getline(istr, line);
110 converter = std::istringstream(line);
111 converter >> thisInfo.lastStatusTime;
112 std::getline(istr, line);
114 std::getline(istr, line);
115 thisInfo.class_name = line;
116 infos.push_back(thisInfo);
void setStatus(const std::string &status, const unsigned int progress, const std::string &detail="")
Setters ----------------—.