otsdaq  v2_04_01
DataDecoderConsumerConfiguration_configuration.cc
1 #include <iostream>
2 #include "otsdaq-core/ConfigurationPluginDataFormats/DataDecoderConsumerTable.h"
3 #include "otsdaq-coreMacros/TablePluginMacros.h"
4 
5 using namespace ots;
6 
7 //==============================================================================
8 DataDecoderConsumerConfiguration::DataDecoderConsumerConfiguration(void)
9  : TableBase("DataDecoderConsumerConfiguration")
10 {
12  // WARNING: the names and the order MUST match the ones in the enum //
14  // <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
15  // <ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
16  // xsi:noNamespaceSchemaLocation="TableInfo.xsd"> <CONFIGURATION
17  // Name="DataDecoderConsumerConfiguration"> <VIEW
18  // Name="DATA_DECODER_CONSUMER_CONFIGURATION" Type="File,Database,DatabaseTest">
19  // <COLUMN Name="ProcessorID" StorageName="PROCESSOR_ID"
20  // DataType="VARCHAR2"/>
21  // </VIEW>
22  // </CONFIGURATION>
23  // </ROOT>
24 }
25 
26 //==============================================================================
27 DataDecoderConsumerConfiguration::~DataDecoderConsumerConfiguration(void) {}
28 
29 //==============================================================================
30 void DataDecoderConsumerConfiguration::init(ConfigurationManager* configManager)
31 {
32  std::string processorUID;
33  for(unsigned int row = 0; row < TableBase::activeTableView_->getNumberOfRows(); row++)
34  {
35  TableBase::activeTableView_->getValue(processorUID, row, ProcessorID);
36  processorIDToRowMap_[processorUID] = row;
37  }
38 }
39 
40 //==============================================================================
41 std::vector<std::string> DataDecoderConsumerConfiguration::getProcessorIDList(void) const
42 {
43  std::vector<std::string> list;
44  for(auto& it : processorIDToRowMap_)
45  list.push_back(it.first);
46  return list;
47 }
48 
49 //==============================================================================
50 void DataDecoderConsumerConfiguration::check(std::string processorUID) const
51 {
52  if(processorIDToRowMap_.find(processorUID) == processorIDToRowMap_.end())
53  {
54  __MOUT_ERROR__ << "Couldn't find processor " << processorUID
55  << " in the UDPDataStreamerConsumerConfiguration!" << std::endl;
56  assert(0);
57  }
58 }
59 
60 DEFINE_OTS_CONFIGURATION(DataDecoderConsumerConfiguration)