1 #include "otsdaq-core/ARTDAQDataManager/ARTDAQDataManager.h"
2 #include "otsdaq-core/DataProcessorPlugins/ARTDAQConsumer.h"
3 #include "otsdaq-core/DataProcessorPlugins/ARTDAQProducer.h"
5 #include "artdaq/BuildInfo/GetPackageBuildInfo.hh"
14 ARTDAQDataManager::ARTDAQDataManager(
const ConfigurationTree& theXDAQContextConfigTree,
const std::string& supervisorConfigurationPath)
15 :
DataManager (theXDAQContextConfigTree, supervisorConfigurationPath)
17 INIT_MF(
"BoardReaderDataManager");
18 __MOUT__ <<
"Begin!" << std::endl;
19 __MOUT__ <<
"Begin!" << std::endl;
20 __MOUT__ <<
"Begin!" << std::endl;
21 __MOUT__ <<
"Begin!" << std::endl;
22 __MOUT__ <<
"Begin!" << std::endl;
23 mf::LogDebug(
"BoardReader") <<
"artdaq version " <<
25 artdaq::GetPackageBuildInfo::getPackageBuildInfo().getPackageVersion()
27 artdaq::GetPackageBuildInfo::getPackageBuildInfo().getBuildTimestamp();
28 theMPIProcess_.init(
"BoardReader", artdaq::TaskType::BoardReaderTask);
29 __MOUT__ <<
"Initialized!" << std::endl;
30 __MOUT__ <<
"Initialized!" << std::endl;
31 __MOUT__ <<
"Initialized!" << std::endl;
32 __MOUT__ <<
"Initialized!" << std::endl;
33 __MOUT__ <<
"Initialized!" << std::endl;
37 ARTDAQDataManager::~ARTDAQDataManager(
void)
41 void ARTDAQDataManager::configure(
void)
43 __MOUT__ <<
"ARTDAQDataManager configuring..." << std::endl;
45 DataManager::configure();
47 __MOUT__ <<
"ARTDAQDataManager DataManager configured now pass the MPI stuff" << std::endl;
48 for(
auto it=DataManager::buffers_.begin(); it!=DataManager::buffers_.end(); it++)
49 for(
auto& itc: it->second.consumers_)
50 if(dynamic_cast<ARTDAQConsumer*>(itc.get()))
52 dynamic_cast<ARTDAQConsumer*
>(itc.get())->initLocalGroup(theMPIProcess_.getRank());
56 __SS__ <<
"There was no ARTDAQ Consumer found on a buffer!" << std::endl;
59 __MOUT__ <<
"Looking for an ARTDAQ Producer..." << std::endl;
61 for(
auto it=DataManager::buffers_.begin(); it!=DataManager::buffers_.end(); it++)
62 for(
auto& itc: it->second.producers_)
63 if(dynamic_cast<ARTDAQProducer*>(itc.get()))
65 dynamic_cast<ARTDAQProducer*
>(itc.get())->initLocalGroup(theMPIProcess_.getRank());
69 __MOUT__ <<
"No ARTDAQ Producers found either... so error!" << std::endl;
71 __MOUT_ERR__ << ss.str();
72 throw std::runtime_error(ss.str());
77 void ARTDAQDataManager::stop(
void)