$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #include <iostream> 00002 #include "otsdaq-core/ConfigurationPluginDataFormats/DataBufferTable.h" 00003 #include "otsdaq-coreMacros/TablePluginMacros.h" 00004 00005 using namespace ots; 00006 00007 //============================================================================== 00008 DataBufferConfiguration::DataBufferConfiguration(void) 00009 : TableBase("DataBufferConfiguration") 00010 { 00012 // WARNING: the names and the order MUST match the ones in the enum // 00014 // <ROOT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 00015 // xsi:noNamespaceSchemaLocation="TableInfo.xsd"> 00016 // <CONFIGURATION Name="DataBufferConfiguration"> 00017 // <VIEW Name="DATA_BUFFER_CONFIGURATION" Type="File,Database,DatabaseTest"> 00018 // <COLUMN Name="DataBufferID" StorageName="DATA_BUFFER_ID" 00019 // DataType="VARCHAR2"/> <COLUMN Name="ProcessorID" 00020 // StorageName="PROCESSOR_ID" DataType="VARCHAR2"/> <COLUMN 00021 // Name="ProcessorType" StorageName="PROCESSOR_TYPE" DataType="VARCHAR2"/> 00022 // <COLUMN Name="ProcessorClass" StorageName="PROCESSOR_CLASS" 00023 // DataType="VARCHAR2"/> <COLUMN Name="ProcessorStatus" 00024 // StorageName="PROCESSOR_STATUS" DataType="VARCHAR2"/> 00025 // </VIEW> 00026 // </CONFIGURATION> 00027 // </ROOT> 00028 } 00029 00030 //============================================================================== 00031 DataBufferConfiguration::~DataBufferConfiguration(void) {} 00032 00033 //============================================================================== 00034 void DataBufferConfiguration::init(ConfigurationManager* configManager) 00035 { 00036 processorInfos_.clear(); 00037 00038 // std::string uniqueID;//Right now ignored 00039 std::string dataBufferID; 00040 std::string processorUID; 00041 std::string processorType; 00042 Info processorInfo; 00043 for(unsigned int row = 0; row < TableBase::activeTableView_->getNumberOfRows(); row++) 00044 { 00045 TableBase::activeTableView_->getValue(dataBufferID, row, DataBufferID); 00046 TableBase::activeTableView_->getValue(processorUID, row, ProcessorID); 00047 TableBase::activeTableView_->getValue(processorType, row, ProcessorType); 00048 TableBase::activeTableView_->getValue(processorInfo.class_, row, ProcessorClass); 00049 TableBase::activeTableView_->getValue( 00050 processorInfo.status_, row, ProcessorStatus); 00051 00052 if(processorType == "Producer") 00053 { 00054 processorInfos_[dataBufferID].producers_[processorUID] = processorInfo; 00055 processorInfos_[dataBufferID].processors_[processorUID] = processorInfo; 00056 } 00057 else if(processorType == "Consumer") 00058 { 00059 processorInfos_[dataBufferID].consumers_[processorUID] = processorInfo; 00060 processorInfos_[dataBufferID].processors_[processorUID] = processorInfo; 00061 } 00062 else 00063 { 00064 std::cout << __COUT_HDR_FL__ 00065 << "Unrecognized Processor Type: " << processorType << std::endl; 00066 assert(0); 00067 } 00068 } 00069 } 00070 00071 //============================================================================== 00072 std::vector<std::string> DataBufferConfiguration::getProcessorIDList( 00073 std::string dataBufferID) const 00074 { 00075 std::vector<std::string> list; 00076 for(auto const& it : processorInfos_.find(dataBufferID)->second.processors_) 00077 list.push_back(it.first); 00078 return list; 00079 } 00080 00081 //============================================================================== 00082 std::vector<std::string> DataBufferConfiguration::getProducerIDList( 00083 std::string dataBufferID) const 00084 { 00085 std::vector<std::string> list; 00086 for(auto const& it : processorInfos_.find(dataBufferID)->second.producers_) 00087 list.push_back(it.first); 00088 return list; 00089 } 00090 00091 //============================================================================== 00092 bool DataBufferConfiguration::getProducerStatus(std::string dataBufferID, 00093 std::string producerID) const 00094 { 00095 return processorInfos_.find(dataBufferID) 00096 ->second.producers_.find(producerID) 00097 ->second.status_; 00098 } 00099 00100 //============================================================================== 00101 std::string DataBufferConfiguration::getProducerClass(std::string dataBufferID, 00102 std::string producerID) const 00103 { 00104 return processorInfos_.find(dataBufferID) 00105 ->second.producers_.find(producerID) 00106 ->second.class_; 00107 } 00108 00109 //============================================================================== 00110 std::vector<std::string> DataBufferConfiguration::getConsumerIDList( 00111 std::string dataBufferID) const 00112 { 00113 std::vector<std::string> list; 00114 for(auto& it : processorInfos_.find(dataBufferID)->second.consumers_) 00115 list.push_back(it.first); 00116 return list; 00117 } 00118 00119 //============================================================================== 00120 bool DataBufferConfiguration::getConsumerStatus(std::string dataBufferID, 00121 std::string consumerID) const 00122 { 00123 return processorInfos_.find(dataBufferID) 00124 ->second.consumers_.find(consumerID) 00125 ->second.status_; 00126 } 00127 00128 //============================================================================== 00129 std::string DataBufferConfiguration::getConsumerClass(std::string dataBufferID, 00130 std::string consumerID) const 00131 { 00132 return processorInfos_.find(dataBufferID) 00133 ->second.consumers_.find(consumerID) 00134 ->second.class_; 00135 } 00136 00137 DEFINE_OTS_CONFIGURATION(DataBufferConfiguration)