1 #include "otsdaq-core/SystemMessenger/SystemMessenger.h"
14 void SystemMessenger::addSysMsg(std::string targetUser, std::string msg)
22 if(sysMsgTargetUser_.size() && sysMsgTargetUser_[sysMsgTargetUser_.size()-1] == targetUser && sysMsgMessage_[sysMsgTargetUser_.size()-1] == msg)
return;
25 sysMsgTargetUser_.push_back(targetUser);
26 sysMsgMessage_.push_back(msg);
27 sysMsgTime_.push_back(time(0));
28 sysMsgDelivered_.push_back(
false);
31 std::cout << __COUT_HDR_FL__ <<
"Current System Messages: " << sysMsgTargetUser_.size() << std::endl << std::endl;
40 std::string SystemMessenger::getSysMsg(std::string targetUser)
43 std::string retStr =
"";
46 for(uint64_t i=0;i<sysMsgTargetUser_.size();++i)
47 if( sysMsgTargetUser_[i] == targetUser || sysMsgTargetUser_[i] ==
"*")
52 sprintf(tmp,
"%lu",sysMsgTime_[i]);
53 retStr += std::string(tmp) +
"|" + sysMsgMessage_[i];
55 if(sysMsgTargetUser_[i] !=
"*")
56 sysMsgDelivered_[i] =
true;
67 void SystemMessenger::sysMsgSetLock(
bool set)
69 while(set && sysMsgLock_) usleep(1000);
77 void SystemMessenger::sysMsgCleanup()
80 for(uint64_t i=0;i<sysMsgTargetUser_.size();++i)
81 if((sysMsgDelivered_[i] && sysMsgTargetUser_[i] !=
"*") ||
82 sysMsgTime_[i] + SYS_CLEANUP_WILDCARD_TIME < time(0))
86 sysMsgTargetUser_.erase (sysMsgTargetUser_.begin()+i);
87 sysMsgMessage_.erase (sysMsgMessage_.begin()+i);
88 sysMsgTime_.erase (sysMsgTime_.begin()+i);
89 sysMsgDelivered_.erase (sysMsgDelivered_.begin()+i);