1 #include "otsdaq-core/FECore/FEProducerVInterface.h"
2 #include "otsdaq-core/DataManager/DataManager.h"
3 #include "otsdaq-core/DataManager/DataManagerSingleton.h"
8 #define __MF_SUBJECT__ (std::string("FEProducer-") + DataProcessor::processorUID_)
11 FEProducerVInterface::FEProducerVInterface(
12 const std::string& interfaceUID,
14 const std::string& interfaceConfigurationPath)
15 :
FEVInterface(interfaceUID, theXDAQContextConfigTree, interfaceConfigurationPath)
17 theXDAQContextConfigTree.getBackNode(interfaceConfigurationPath, 4)
19 theXDAQContextConfigTree
20 .getNode(interfaceConfigurationPath +
"/" +
"LinkToDataBufferTable", 4)
28 __COUT__ <<
"'" << interfaceUID <<
"' Constructed." << __E__;
30 __COUTV__(interfaceConfigurationPath);
32 theXDAQContextConfigTree.getBackNode(interfaceConfigurationPath, 2);
34 __COUTV__(appNode.getValueAsString());
38 FEProducerVInterface::~FEProducerVInterface(
void)
40 __FE_COUT__ <<
"Destructor." << __E__;
43 __COUT__ <<
"FEProducer '" << DataProcessor::processorUID_
44 <<
"' is unregistering from DataManager Supervisor Buffer '"
45 << DataProcessor::supervisorApplicationUID_ <<
":"
46 << DataProcessor::bufferUID_ <<
".'" << std::endl;
49 (DataManagerSingleton::getInstance(supervisorApplicationUID_));
55 dataManager->dumpStatus(&ss);
56 std::cout << ss.str() << __E__;
59 __COUT__ <<
"FEProducer '" << DataProcessor::processorUID_ <<
"' unregistered."
62 __FE_COUT__ <<
"Destructed." << __E__;
88 void FEProducerVInterface::copyToNextBuffer(
const std::string& dataToWrite)
90 __FE_COUT__ <<
"Write Data: "
91 << BinaryStringMacros::binaryTo8ByteHexString(dataToWrite) << __E__;
93 DataProducerBase::write<std::string, std::map<std::string, std::string> >(
135 std::string* FEProducerVInterface::getNextBuffer(
void)
137 if(DataProducerBase::attachToEmptySubBuffer(FEProducerVInterface::dataP_,
138 FEProducerVInterface::headerP_) < 0)
141 <<
"There are no available buffers! Retrying...after waiting 10 milliseconds!"
146 return FEProducerVInterface::dataP_;
153 void FEProducerVInterface::writeCurrentBuffer(
void)
155 __FE_COUT__ <<
"Writing data of size " << FEProducerVInterface::dataP_->size()
158 DataProducerBase::setWrittenSubBuffer<std::string,
159 std::map<std::string, std::string> >();
161 __FE_COUT__ <<
"Data written." << __E__;
void unregisterFEProducer(const std::string &bufferID, const std::string &feProducerID)