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