1 #include "otsdaq-core/CoreSupervisors/FESupervisor.h"
2 #include "otsdaq-core/ConfigurationInterface/ConfigurationManager.h"
3 #include "otsdaq-core/FECore/FEVInterfacesManager.h"
12 __SUP_COUT__ <<
"Constructing..." << __E__;
15 &FESupervisor::macroMakerSupervisorRequest,
16 "MacroMakerSupervisorRequest",
20 this, &FESupervisor::workLoopStatusRequest,
"WorkLoopStatusRequest", XDAQ_NS_URI);
23 &FESupervisor::frontEndCommunicationRequest,
29 CoreSupervisorBase::theStateMachineImplementation_.push_back(
31 CorePropertySupervisorBase::getContextTreeNode(),
32 CorePropertySupervisorBase::getSupervisorConfigurationPath()));
36 if(CorePropertySupervisorBase::allSupervisorInfo_.isMacroMakerMode())
38 __SUP_COUT_WARN__ <<
"Error caught constructing FE Interface Manager. In "
39 "Macro Maker mode, the input fhicl defines the "
40 "configuration tree, make sure you specified a valid "
47 extractFEInterfacesManager();
49 __SUP_COUT__ <<
"Constructed." << __E__;
51 if(CorePropertySupervisorBase::allSupervisorInfo_.isMacroMakerMode())
53 __SUP_COUT_INFO__ <<
"Macro Maker mode, so configuring at startup!" << __E__;
54 if(!theFEInterfacesManager_)
56 __SUP_SS__ <<
"Missing FE Interface manager!" << __E__;
67 __SUP_COUT__ <<
"Configuring all state machine implementations..." << __E__;
68 preStateMachineExecutionLoop();
69 for(
unsigned int i = 0; i < theStateMachineImplementation_.size(); ++i)
72 if(subIterationWorkStateMachineIndex_ != (
unsigned int)-1 &&
73 i != subIterationWorkStateMachineIndex_)
76 if(stateMachinesIterationDone_[i])
79 preStateMachineExecution(i);
80 theStateMachineImplementation_[i]->parentSupervisor_ =
83 theStateMachineImplementation_[i]->configure();
86 postStateMachineExecution(i);
88 postStateMachineExecutionLoop();
90 catch(
const std::runtime_error& e)
92 __SUP_SS__ <<
"Error was caught while configuring: " << e.what() << __E__;
93 __SUP_COUT_ERR__ <<
"\n" << ss.str();
94 theStateMachine_.setErrorMessage(ss.str());
99 <<
"Unknown error was caught while configuring. Please checked the logs."
101 __SUP_COUT_ERR__ <<
"\n" << ss.str();
102 theStateMachine_.setErrorMessage(ss.str());
108 FESupervisor::~FESupervisor(
void)
110 __SUP_COUT__ <<
"Destroying..." << __E__;
113 __SUP_COUT__ <<
"Destructed." << __E__;
117 xoap::MessageReference FESupervisor::frontEndCommunicationRequest(
118 xoap::MessageReference message)
try
120 __SUP_COUT__ <<
"FE Request received: " << SOAPUtilities::translate(message) << __E__;
122 if(!theFEInterfacesManager_)
124 __SUP_SS__ <<
"No FE Interface Manager!" << __E__;
128 typeParameter.addParameter(
"type");
129 SOAPUtilities::receive(message, typeParameter);
131 std::string type = typeParameter.getValue(
"type");
141 rxParameters.addParameter(
"requester");
142 rxParameters.addParameter(
"targetInterfaceID");
148 rxParameters.addParameter(
"value");
149 SOAPUtilities::receive(message, rxParameters);
151 std::string requester = rxParameters.getValue(
"requester");
152 std::string targetInterfaceID = rxParameters.getValue(
"targetInterfaceID");
153 std::string value = rxParameters.getValue(
"value");
155 __SUP_COUTV__(requester);
156 __SUP_COUTV__(targetInterfaceID);
157 __SUP_COUTV__(value);
160 theFEInterfacesManager_->getFEInterface(targetInterfaceID);
164 std::lock_guard<std::mutex> lock(
165 theFEInterfacesManager_->frontEndCommunicationReceiveMutex_);
167 theFEInterfacesManager_
168 ->frontEndCommunicationReceiveBuffer_[targetInterfaceID][requester]
171 __SUP_COUT__ <<
"Number of target interface ID '" << targetInterfaceID
173 << theFEInterfacesManager_
174 ->frontEndCommunicationReceiveBuffer_[targetInterfaceID]
178 <<
"Number of source interface ID '" << requester <<
"' values received: "
179 << theFEInterfacesManager_
180 ->frontEndCommunicationReceiveBuffer_[targetInterfaceID][requester]
184 return SOAPUtilities::makeSOAPMessageReference(
"Received");
186 else if(type ==
"feMacro")
190 rxParameters.addParameter(
"feMacroName");
191 rxParameters.addParameter(
"inputArgs");
193 SOAPUtilities::receive(message, rxParameters);
195 std::string requester = rxParameters.getValue(
"requester");
196 std::string targetInterfaceID = rxParameters.getValue(
"targetInterfaceID");
197 std::string feMacroName = rxParameters.getValue(
"feMacroName");
198 std::string inputArgs = rxParameters.getValue(
"inputArgs");
200 __SUP_COUTV__(requester);
201 __SUP_COUTV__(targetInterfaceID);
202 __SUP_COUTV__(feMacroName);
203 __SUP_COUTV__(inputArgs);
205 std::string outputArgs;
208 theFEInterfacesManager_->runFEMacroByFE(
209 requester, targetInterfaceID, feMacroName, inputArgs, outputArgs);
211 catch(std::runtime_error& e)
213 __SUP_SS__ <<
"In Supervisor with LID="
214 << getApplicationDescriptor()->getLocalId()
215 <<
" the FE Macro named '" << feMacroName <<
"' with target FE '"
216 << targetInterfaceID <<
"' failed. Here is the error:\n\n"
217 << e.what() << __E__;
222 __SUP_SS__ <<
"In Supervisor with LID="
223 << getApplicationDescriptor()->getLocalId()
224 <<
" the FE Macro named '" << feMacroName <<
"' with target FE '"
225 << targetInterfaceID <<
"' failed due to an unknown error."
230 __SUP_COUTV__(outputArgs);
232 xoap::MessageReference replyMessage =
233 SOAPUtilities::makeSOAPMessageReference(
"feMacrosResponse");
235 txParameters.addParameter(
"requester", requester);
236 txParameters.addParameter(
"targetInterfaceID", targetInterfaceID);
237 txParameters.addParameter(
"feMacroName", feMacroName);
238 txParameters.addParameter(
"outputArgs", outputArgs);
239 SOAPUtilities::addParameters(replyMessage, txParameters);
241 __SUP_COUT__ <<
"Sending FE macro result: "
242 << SOAPUtilities::translate(replyMessage) << __E__;
246 else if(type ==
"feMacroMultiDimensionalStart" ||
247 type ==
"macroMultiDimensionalStart")
253 rxParameters.addParameter(
"macroString");
254 rxParameters.addParameter(
"macroName");
257 rxParameters.addParameter(
"feMacroName");
259 rxParameters.addParameter(
"enableSavingOutput");
260 rxParameters.addParameter(
"outputFilePath");
261 rxParameters.addParameter(
"outputFileRadix");
262 rxParameters.addParameter(
"inputArgs");
264 SOAPUtilities::receive(message, rxParameters);
266 std::string requester = rxParameters.getValue(
"requester");
267 std::string targetInterfaceID = rxParameters.getValue(
"targetInterfaceID");
268 std::string macroName, macroString;
271 macroName = rxParameters.getValue(
"macroName");
272 macroString = rxParameters.getValue(
"macroString");
273 __SUP_COUTV__(macroString);
276 macroName = rxParameters.getValue(
"feMacroName");
277 bool enableSavingOutput = rxParameters.getValue(
"enableSavingOutput") ==
"1";
278 std::string outputFilePath = rxParameters.getValue(
"outputFilePath");
279 std::string outputFileRadix = rxParameters.getValue(
"outputFileRadix");
280 std::string inputArgs = rxParameters.getValue(
"inputArgs");
282 __SUP_COUTV__(requester);
283 __SUP_COUTV__(targetInterfaceID);
284 __SUP_COUTV__(macroName);
285 __SUP_COUTV__(enableSavingOutput);
286 __SUP_COUTV__(outputFilePath);
287 __SUP_COUTV__(outputFileRadix);
288 __SUP_COUTV__(inputArgs);
303 catch(std::runtime_error& e)
305 __SUP_SS__ <<
"In Supervisor with LID="
306 << getApplicationDescriptor()->getLocalId()
307 <<
" the Macro named '" << macroName <<
"' with target FE '"
309 <<
"' failed to start multi-dimensional launch. "
310 <<
"Here is the error:\n\n"
311 << e.what() << __E__;
316 __SUP_SS__ <<
"In Supervisor with LID="
317 << getApplicationDescriptor()->getLocalId()
318 <<
" the Macro named '" << macroName <<
"' with target FE '"
320 <<
"' failed to start multi-dimensional launch "
321 <<
"due to an unknown error." << __E__;
329 theFEInterfacesManager_->startFEMacroMultiDimensional(requester,
337 catch(std::runtime_error& e)
339 __SUP_SS__ <<
"In Supervisor with LID="
340 << getApplicationDescriptor()->getLocalId()
341 <<
" the FE Macro named '" << macroName <<
"' with target FE '"
343 <<
"' failed to start multi-dimensional launch. "
344 <<
"Here is the error:\n\n"
345 << e.what() << __E__;
350 __SUP_SS__ <<
"In Supervisor with LID="
351 << getApplicationDescriptor()->getLocalId()
352 <<
" the FE Macro named '" << macroName <<
"' with target FE '"
354 <<
"' failed to start multi-dimensional launch "
355 <<
"due to an unknown error." << __E__;
360 xoap::MessageReference replyMessage =
361 SOAPUtilities::makeSOAPMessageReference(type +
"Done");
364 SOAPUtilities::addParameters(replyMessage, txParameters);
366 __SUP_COUT__ <<
"Sending FE macro result: "
367 << SOAPUtilities::translate(replyMessage) << __E__;
371 else if(type ==
"feMacroMultiDimensionalCheck" ||
372 type ==
"macroMultiDimensionalCheck")
376 rxParameters.addParameter(
"macroName");
378 rxParameters.addParameter(
"feMacroName");
379 rxParameters.addParameter(
"targetInterfaceID");
381 SOAPUtilities::receive(message, rxParameters);
383 std::string targetInterfaceID = rxParameters.getValue(
"targetInterfaceID");
384 std::string macroName;
386 macroName = rxParameters.getValue(
"macroName");
388 macroName = rxParameters.getValue(
"feMacroName");
390 __SUP_COUTV__(targetInterfaceID);
391 __SUP_COUTV__(macroName);
396 done = theFEInterfacesManager_->checkMacroMultiDimensional(targetInterfaceID,
399 catch(std::runtime_error& e)
401 __SUP_SS__ <<
"In Supervisor with LID="
402 << getApplicationDescriptor()->getLocalId()
403 <<
" the FE Macro named '" << macroName <<
"' with target FE '"
405 <<
"' failed to check multi-dimensional launch. "
406 <<
"Here is the error:\n\n"
407 << e.what() << __E__;
412 __SUP_SS__ <<
"In Supervisor with LID="
413 << getApplicationDescriptor()->getLocalId()
414 <<
" the FE Macro named '" << macroName <<
"' with target FE '"
416 <<
"' failed to check multi-dimensional launch "
417 <<
"due to an unknown error." << __E__;
421 xoap::MessageReference replyMessage =
422 SOAPUtilities::makeSOAPMessageReference(type +
"Done");
424 txParameters.addParameter(
"Done", done ?
"1" :
"0");
425 SOAPUtilities::addParameters(replyMessage, txParameters);
427 __SUP_COUT__ <<
"Sending FE macro result: "
428 << SOAPUtilities::translate(replyMessage) << __E__;
434 __SUP_SS__ <<
"Unrecognized FE Communication type: " << type << __E__;
438 catch(
const std::runtime_error& e)
440 __SUP_SS__ <<
"Error encountered processing FE communication request: " << e.what()
442 __SUP_COUT_ERR__ << ss.str();
445 parameters.addParameter(
"Error", ss.str());
446 return SOAPUtilities::makeSOAPMessageReference(
447 supervisorClassNoNamespace_ +
"FailFECommunicationRequest", parameters);
451 __SUP_SS__ <<
"Unknown error encountered processing FE communication request."
453 __SUP_COUT_ERR__ << ss.str();
456 parameters.addParameter(
"Error", ss.str());
457 return SOAPUtilities::makeSOAPMessageReference(
458 supervisorClassNoNamespace_ +
"FailFECommunicationRequest", parameters);
468 xoap::MessageReference FESupervisor::macroMakerSupervisorRequest(
469 xoap::MessageReference message)
471 __SUP_COUT__ <<
"$$$$$$$$$$$$$$$$$" << __E__;
475 parameters.addParameter(
"Request");
477 __SUP_COUT__ <<
"Received Macro Maker message: " << SOAPUtilities::translate(message)
480 SOAPUtilities::receive(message, parameters);
481 std::string request = parameters.getValue(
"Request");
483 __SUP_COUT__ <<
"request: " << request << __E__;
497 if(request ==
"GetInterfaces")
499 if(theFEInterfacesManager_)
500 retParameters.addParameter(
502 theFEInterfacesManager_->getFEListString(
503 std::to_string(getApplicationDescriptor()->getLocalId())));
505 retParameters.addParameter(
"FEList",
"");
508 if(theStateMachine_.getErrorMessage() !=
"")
509 retParameters.addParameter(
"frontEndError",
510 theStateMachine_.getErrorMessage());
512 return SOAPUtilities::makeSOAPMessageReference(
513 supervisorClassNoNamespace_ +
"Response", retParameters);
515 else if(request ==
"UniversalWrite")
517 if(!theFEInterfacesManager_)
519 __SUP_SS__ <<
"No FE Interface Manager! Are you configured?" << __E__;
524 requestParameters.addParameter(
"InterfaceID");
525 requestParameters.addParameter(
"Address");
526 requestParameters.addParameter(
"Data");
527 SOAPUtilities::receive(message, requestParameters);
528 std::string interfaceID = requestParameters.getValue(
"InterfaceID");
529 std::string addressStr = requestParameters.getValue(
"Address");
530 std::string dataStr = requestParameters.getValue(
"Data");
532 __SUP_COUT__ <<
"Address: " << addressStr <<
" Data: " << dataStr
533 <<
" InterfaceID: " << interfaceID << __E__;
540 <<
"theFEInterfacesManager_->getInterfaceUniversalAddressSize(index) "
541 << theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID)
544 <<
"theFEInterfacesManager_->getInterfaceUniversalDataSize(index) "
545 << theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID)
554 __SUP_COUT__ <<
"Translating address: ";
556 std::string addressTmp;
558 theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID));
559 char* address = &addressTmp[0];
561 if(addressStr.size() % 2)
562 addressStr =
"0" + addressStr;
564 for(; i < addressStr.size() &&
565 i / 2 < theFEInterfacesManager_->getInterfaceUniversalAddressSize(
569 tmpHex[0] = addressStr[addressStr.size() - 1 - i - 1];
570 tmpHex[1] = addressStr[addressStr.size() - 1 - i];
571 sscanf(tmpHex,
"%hhX", (
unsigned char*)&address[i / 2]);
572 printf(
"%2.2X", (
unsigned char)address[i / 2]);
576 theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID);
580 printf(
"%2.2X", (
unsigned char)address[i / 2]);
585 __SUP_COUT__ <<
"Translating data: ";
589 theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID));
590 char* data = &dataTmp[0];
592 if(dataStr.size() % 2)
593 dataStr =
"0" + dataStr;
596 for(; i < dataStr.size() &&
598 theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID);
601 tmpHex[0] = dataStr[dataStr.size() - 1 - i - 1];
602 tmpHex[1] = dataStr[dataStr.size() - 1 - i];
603 sscanf(tmpHex,
"%hhX", (
unsigned char*)&data[i / 2]);
604 printf(
"%2.2X", (
unsigned char)data[i / 2]);
608 theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID);
612 printf(
"%2.2X", (
unsigned char)data[i / 2]);
624 theFEInterfacesManager_->universalWrite(interfaceID, address, data);
629 return SOAPUtilities::makeSOAPMessageReference(
630 supervisorClassNoNamespace_ +
"DataWritten", retParameters);
632 else if(request ==
"UniversalRead")
634 if(!theFEInterfacesManager_)
636 __SUP_SS__ <<
"No FE Interface Manager! Are you configured?" << __E__;
642 requestParameters.addParameter(
"InterfaceID");
643 requestParameters.addParameter(
"Address");
644 SOAPUtilities::receive(message, requestParameters);
645 std::string interfaceID = requestParameters.getValue(
"InterfaceID");
646 std::string addressStr = requestParameters.getValue(
"Address");
648 __SUP_COUT__ <<
"Address: " << addressStr <<
" InterfaceID: " << interfaceID
657 <<
"theFEInterfacesManager_->getInterfaceUniversalAddressSize(index) "
658 << theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID)
661 <<
"theFEInterfacesManager_->getInterfaceUniversalDataSize(index) "
662 << theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID)
668 __SUP_COUT__ <<
"Translating address: ";
670 std::string addressTmp;
672 theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID));
673 char* address = &addressTmp[0];
675 if(addressStr.size() % 2)
676 addressStr =
"0" + addressStr;
679 for(; i < addressStr.size() &&
680 i / 2 < theFEInterfacesManager_->getInterfaceUniversalAddressSize(
684 tmpHex[0] = addressStr[addressStr.size() - 1 - i - 1];
685 tmpHex[1] = addressStr[addressStr.size() - 1 - i];
686 sscanf(tmpHex,
"%hhX", (
unsigned char*)&address[i / 2]);
687 printf(
"%2.2X", (
unsigned char)address[i / 2]);
691 theFEInterfacesManager_->getInterfaceUniversalAddressSize(interfaceID);
695 printf(
"%2.2X", (
unsigned char)address[i / 2]);
700 unsigned int dataSz =
701 theFEInterfacesManager_->getInterfaceUniversalDataSize(interfaceID);
703 dataStr.resize(dataSz);
704 char* data = &dataStr[0];
712 theFEInterfacesManager_->universalRead(interfaceID, address, data);
714 catch(
const std::runtime_error& e)
718 __MOUT_ERR__ <<
"Exception caught during read: " << e.what() << __E__;
719 __SUP_COUT_ERR__ <<
"Exception caught during read: " << e.what() << __E__;
720 retParameters.addParameter(
"dataResult",
"Time Out Error");
721 return SOAPUtilities::makeSOAPMessageReference(
722 supervisorClassNoNamespace_ +
"aa", retParameters);
728 __MOUT_ERR__ <<
"Exception caught during read." << __E__;
729 __SUP_COUT_ERR__ <<
"Exception caught during read." << __E__;
730 retParameters.addParameter(
"dataResult",
"Time Out Error");
731 return SOAPUtilities::makeSOAPMessageReference(
732 supervisorClassNoNamespace_ +
"aa", retParameters);
738 std::string str8(data);
740 __SUP_COUT__ <<
"decResult[" << dataSz
741 <<
" bytes]: " << *((
unsigned long long*)(&str8[0]))
745 std::string hexResultStr;
746 hexResultStr.reserve(dataSz * 2 + 1);
747 char* hexResult = &hexResultStr[0];
751 for(
unsigned int i = 0; i < dataSz; ++i)
753 sprintf(&hexResult[i * 2],
"%2.2X", (
unsigned char)data[dataSz - 1 - i]);
756 __SUP_COUT__ <<
"hexResult[" << strlen(hexResult)
757 <<
" nibbles]: " << std::string(hexResult) << __E__;
759 retParameters.addParameter(
"dataResult", hexResult);
760 return SOAPUtilities::makeSOAPMessageReference(
761 supervisorClassNoNamespace_ +
"aa", retParameters);
763 else if(request ==
"GetInterfaceMacros")
765 if(theFEInterfacesManager_)
766 retParameters.addParameter(
768 theFEInterfacesManager_->getFEMacrosString(
769 CorePropertySupervisorBase::getSupervisorUID(),
770 std::to_string(CoreSupervisorBase::getSupervisorLID())));
772 retParameters.addParameter(
"FEMacros",
"");
774 return SOAPUtilities::makeSOAPMessageReference(
775 supervisorClassNoNamespace_ +
"Response", retParameters);
777 else if(request ==
"RunInterfaceMacro")
779 if(!theFEInterfacesManager_)
781 __SUP_SS__ <<
"Missing FE Interface Manager! Are you configured?"
788 requestParameters.addParameter(
"feMacroName");
789 requestParameters.addParameter(
"inputArgs");
790 requestParameters.addParameter(
"outputArgs");
791 requestParameters.addParameter(
"InterfaceID");
792 SOAPUtilities::receive(message, requestParameters);
793 std::string interfaceID = requestParameters.getValue(
"InterfaceID");
794 std::string feMacroName = requestParameters.getValue(
"feMacroName");
795 std::string inputArgs = requestParameters.getValue(
"inputArgs");
796 std::string outputArgs = requestParameters.getValue(
"outputArgs");
802 theFEInterfacesManager_->runFEMacro(
803 interfaceID, feMacroName, inputArgs, outputArgs);
805 catch(std::runtime_error& e)
807 __SUP_SS__ <<
"In Supervisor with LID="
808 << getApplicationDescriptor()->getLocalId()
809 <<
" the FE Macro named '" << feMacroName
810 <<
"' with target FE '" << interfaceID
811 <<
"' failed. Here is the error:\n\n"
812 << e.what() << __E__;
817 __SUP_SS__ <<
"In Supervisor with LID="
818 << getApplicationDescriptor()->getLocalId()
819 <<
" the FE Macro named '" << feMacroName
820 <<
"' with target FE '" << interfaceID
821 <<
"' failed due to an unknown error." << __E__;
826 retParameters.addParameter(
"outputArgs", outputArgs);
828 return SOAPUtilities::makeSOAPMessageReference(
829 supervisorClassNoNamespace_ +
"Response", retParameters);
831 else if(request ==
"RunMacroMakerMacro")
833 if(!theFEInterfacesManager_)
835 __SUP_SS__ <<
"Missing FE Interface Manager! Are you configured?"
842 requestParameters.addParameter(
"macroName");
843 requestParameters.addParameter(
"macroString");
844 requestParameters.addParameter(
"inputArgs");
845 requestParameters.addParameter(
"outputArgs");
846 requestParameters.addParameter(
"InterfaceID");
847 SOAPUtilities::receive(message, requestParameters);
848 std::string interfaceID = requestParameters.getValue(
"InterfaceID");
849 std::string macroName = requestParameters.getValue(
"macroName");
850 std::string macroString = requestParameters.getValue(
"macroString");
851 std::string inputArgs = requestParameters.getValue(
"inputArgs");
852 std::string outputArgs = requestParameters.getValue(
"outputArgs");
858 theFEInterfacesManager_->runMacro(
859 interfaceID, macroString, inputArgs, outputArgs);
861 catch(std::runtime_error& e)
863 __SUP_SS__ <<
"In Supervisor with LID="
864 << getApplicationDescriptor()->getLocalId()
865 <<
" the MacroMaker Macro named '" << macroName
866 <<
"' with target FE '" << interfaceID
867 <<
"' failed. Here is the error:\n\n"
868 << e.what() << __E__;
873 __SUP_SS__ <<
"In Supervisor with LID="
874 << getApplicationDescriptor()->getLocalId()
875 <<
" the MacroMaker Macro named '" << macroName
876 <<
"' with target FE '" << interfaceID
877 <<
"' failed due to an unknown error." << __E__;
881 retParameters.addParameter(
"outputArgs", outputArgs);
883 return SOAPUtilities::makeSOAPMessageReference(
884 supervisorClassNoNamespace_ +
"Response", retParameters);
888 __SUP_SS__ <<
"Unrecognized request received! '" << request <<
"'" << __E__;
892 catch(
const std::runtime_error& e)
894 __SUP_SS__ <<
"Error occurred handling request: " << e.what() << __E__;
895 __SUP_COUT_ERR__ << ss.str();
896 retParameters.addParameter(
"Error", ss.str());
900 __SUP_SS__ <<
"Error occurred handling request." << __E__;
901 __SUP_COUT_ERR__ << ss.str();
902 retParameters.addParameter(
"Error", ss.str());
905 return SOAPUtilities::makeSOAPMessageReference(
906 supervisorClassNoNamespace_ +
"FailRequest", retParameters);
911 xoap::MessageReference FESupervisor::workLoopStatusRequest(xoap::MessageReference message)
913 if(!theFEInterfacesManager_)
915 __SUP_SS__ <<
"Invalid request for front-end workloop status from Supervisor "
916 "without a FEVInterfacesManager."
921 return SOAPUtilities::makeSOAPMessageReference(
922 (theFEInterfacesManager_->allFEWorkloopsAreDone()
923 ? CoreSupervisorBase::WORK_LOOP_DONE
924 : CoreSupervisorBase::WORK_LOOP_WORKING));
937 theFEInterfacesManager_ = 0;
939 for(
unsigned int i = 0; i < theStateMachineImplementation_.size(); ++i)
943 theFEInterfacesManager_ =
945 if(!theFEInterfacesManager_)
948 __SUP_SS__ <<
"Dynamic cast failure!" << __E__;
951 __SUP_COUT__ <<
"State Machine " << i <<
" WAS of type FEVInterfacesManager"
958 __SUP_COUT__ <<
"State Machine " << i
959 <<
" was NOT of type FEVInterfacesManager" << __E__;
963 __SUP_COUT__ <<
"theFEInterfacesManager pointer = " << theFEInterfacesManager_
966 return theFEInterfacesManager_;
void startMacroMultiDimensional(const std::string &requester, const std::string &interfaceID, const std::string ¯oName, const std::string ¯oString, const bool enableSavingOutput, const std::string &outputFilePath, const std::string &outputFileRadix, const std::string &inputArgs)