otsdaq  v2_03_00
DataConsumer.cc
1 #include "otsdaq-core/DataManager/DataConsumer.h"
2 
3 #include "otsdaq-core/ConfigurationInterface/ConfigurationManager.h"
4 #include "otsdaq-core/DataManager/DataManager.h"
5 #include "otsdaq-core/DataManager/DataManagerSingleton.h"
6 
7 using namespace ots;
8 
9 #undef __MF_SUBJECT__
10 #define __MF_SUBJECT__ (std::string("Consumer-") + DataProcessor::processorUID_)
11 
12 //========================================================================================================================
13 DataConsumer::DataConsumer(std::string supervisorApplicationUID,
14  std::string bufferUID,
15  std::string processorUID,
16  ConsumerPriority priority)
17  : WorkLoop(processorUID)
18  , DataProcessor(supervisorApplicationUID, bufferUID, processorUID)
19  , priority_(priority)
20 {
21  __COUT__ << "Constructor." << __E__;
22  registerToBuffer();
23  __COUT__ << "Constructed." << __E__;
24 }
25 
26 //========================================================================================================================
27 DataConsumer::~DataConsumer(void)
28 {
29  __COUT__ << "Destructor." << __E__;
30  // unregisterFromBuffer();
31  __COUT__ << "Destructed." << __E__;
32 }
33 
34 //========================================================================================================================
35 DataConsumer::ConsumerPriority DataConsumer::getPriority(void) { return priority_; }
36 
37 //========================================================================================================================
38 // mirror DataProducerBase::registerToBuffer
39 void DataConsumer::registerToBuffer(void)
40 {
41  __COUT__ << "Consumer '" << DataProcessor::processorUID_
42  << "' is registering to DataManager Supervisor Buffer '"
43  << DataProcessor::supervisorApplicationUID_ << ":"
44  << DataProcessor::bufferUID_ << ".'" << std::endl;
45 
46  DataManager* dataManager =
47  (DataManagerSingleton::getInstance(supervisorApplicationUID_));
48 
49  dataManager->registerConsumer(bufferUID_, this);
50 
51  {
52  __SS__;
53  dataManager->dumpStatus(&ss);
54  std::cout << ss.str() << __E__;
55  }
56 
57  __COUT__ << "Consumer '" << DataProcessor::processorUID_ << "' Registered." << __E__;
58 
59  //
60  //
61  // __COUT__ << "Registering to DataManager Supervisor '" <<
62  // DataProcessor::supervisorApplicationUID_ << "' and buffer '" <<
63  // DataProcessor::bufferUID_ << "'" << std::endl;
64  //
65  // (DataManagerSingleton::getInstance(
66  // supervisorApplicationUID_))->registerConsumer(
67  // bufferUID_,this);
68  //
69  // __COUT__ << "Registered." << __E__;
70 } // end registerToBuffer()
71 
74 // void DataConsumer::unregisterFromBuffer(void)
75 //{
76 // __COUT__ << "Consumer '" << DataProcessor::processorUID_ <<
77 // "' is unregistering to DataManager Supervisor Buffer '" <<
78 // DataProcessor::supervisorApplicationUID_ << ":" <<
79 // DataProcessor::bufferUID_ << ".'" << std::endl;
80 //
81 // DataManager* dataManager =
82 // (DataManagerSingleton::getInstance(
83 // supervisorApplicationUID_));
84 //
85 // dataManager->unregisterConsumer(
86 // bufferUID_,DataProcessor::processorUID_);
87 //
88 // {
89 // __SS__;
90 // dataManager->dumpStatus(&ss);
91 // std::cout << ss.str() << __E__;
92 // }
93 //
94 // __COUT__ << "Consumer '" << DataProcessor::processorUID_ <<
95 // "' Unregistered." << __E__;
96 //} //end unregisterFromBuffer()
97 
98 //========================================================================================================================
99 void DataConsumer::startProcessingData(std::string runNumber)
100 {
101  WorkLoop::startWorkLoop();
102 }
103 
104 //========================================================================================================================
105 void DataConsumer::stopProcessingData(void) { WorkLoop::stopWorkLoop(); }