1 #include "otsdaq-core/CoreSupervisors/FEDataManagerSupervisor.h"
3 #include "../ARTDAQDataManager/ARTDAQDataManager.h"
4 #include "otsdaq-core/ConfigurationInterface/ConfigurationManager.h"
5 #include "otsdaq-core/DataManager/DataManager.h"
6 #include "otsdaq-core/DataManager/DataManagerSingleton.h"
16 bool artdaqDataManager)
19 __SUP_COUT__ <<
"Constructor." << __E__;
28 __SUP_COUTV__(CoreSupervisorBase::theStateMachineImplementation_.size());
40 __SUP_COUT__ <<
"Adding ARTDAQ Data Manager now...!" << __E__;
41 CoreSupervisorBase::theStateMachineImplementation_.push_back(
42 DataManagerSingleton::getInstance<ARTDAQDataManager>(
43 CorePropertySupervisorBase::getContextTreeNode(),
44 CorePropertySupervisorBase::getSupervisorConfigurationPath(),
45 CorePropertySupervisorBase::getSupervisorUID()));
49 __SUP_COUT__ <<
"Adding Data Manager now...!" << __E__;
50 CoreSupervisorBase::theStateMachineImplementation_.push_back(
51 DataManagerSingleton::getInstance<DataManager>(
52 CorePropertySupervisorBase::getContextTreeNode(),
53 CorePropertySupervisorBase::getSupervisorConfigurationPath(),
54 CorePropertySupervisorBase::getSupervisorUID()));
59 __SUP_COUT__ <<
"Constructed." << __E__;
63 FEDataManagerSupervisor::~FEDataManagerSupervisor(
void)
65 __SUP_COUT__ <<
"Destroying..." << __E__;
71 DataManagerSingleton::deleteInstance(CoreSupervisorBase::getSupervisorUID());
72 theStateMachineImplementation_.pop_back();
74 __SUP_COUT__ <<
"Destructed." << __E__;
81 void FEDataManagerSupervisor::transitionConfiguring(toolbox::Event::Reference e)
83 __SUP_COUT__ <<
"transitionConfiguring" << __E__;
88 if(theStateMachineImplementation_.size() != 2)
90 __SUP_SS__ <<
"State machine size is not 2! It is "
91 << theStateMachineImplementation_.size() <<
". What happened??"
97 theStateMachineImplementation_[0] = theStateMachineImplementation_[1];
98 theStateMachineImplementation_[1] = p;
100 CoreSupervisorBase::transitionConfiguring(e);
105 std::cout << ss.str() << __E__;
114 theStateMachineImplementation_[1] = theStateMachineImplementation_[0];
115 theStateMachineImplementation_[0] = p;
124 void FEDataManagerSupervisor::transitionStarting(toolbox::Event::Reference e)
126 __SUP_COUT__ <<
"transitionStarting" << __E__;
131 if(theStateMachineImplementation_.size() != 2)
133 __SUP_SS__ <<
"State machine size is not 2! It is "
134 << theStateMachineImplementation_.size() <<
". What happened??"
139 theStateMachineImplementation_[0] = theStateMachineImplementation_[1];
140 theStateMachineImplementation_[1] = p;
142 CoreSupervisorBase::transitionStarting(e);
145 theStateMachineImplementation_[1] = theStateMachineImplementation_[0];
146 theStateMachineImplementation_[0] = p;
155 void FEDataManagerSupervisor::transitionResuming(toolbox::Event::Reference e)
157 __SUP_COUT__ <<
"transitionStarting" << __E__;
162 if(theStateMachineImplementation_.size() != 2)
164 __SUP_SS__ <<
"State machine size is not 2! It is "
165 << theStateMachineImplementation_.size() <<
". What happened??"
170 theStateMachineImplementation_[0] = theStateMachineImplementation_[1];
171 theStateMachineImplementation_[1] = p;
173 CoreSupervisorBase::transitionResuming(e);
176 theStateMachineImplementation_[1] = theStateMachineImplementation_[0];
177 theStateMachineImplementation_[0] = p;
189 DataManager* FEDataManagerSupervisor::extractDataManager()
193 for(
unsigned int i = 0; i < theStateMachineImplementation_.size(); ++i)
198 dynamic_cast<DataManager*
>(theStateMachineImplementation_[i]);
202 __SUP_SS__ <<
"Dynamic cast failure!" << __E__;
203 __SUP_COUT_ERR__ << ss.str();
206 __SUP_COUT__ <<
"State Machine " << i <<
" WAS of type DataManager" << __E__;
212 __SUP_COUT__ <<
"State Machine " << i <<
" was NOT of type DataManager"
217 __SUP_COUT__ <<
"theDataManager pointer = " << theDataManager_ << __E__;
219 return theDataManager_;