otsdaq  v2_04_01
DataBufferConfiguration.h
1 #ifndef ots_DataBufferConfiguration_h
2 #define ots_DataBufferConfiguration_h
3 
4 #include <map>
5 #include <string>
6 #include <vector>
7 
8 #include "otsdaq-coreTableCore/TableBase.h"
9 
10 namespace ots
11 {
13 {
14  public:
16  virtual ~DataBufferConfiguration(void);
17 
18  // Methods
19  void init(ConfigurationManager* configManager);
20 
21  // Getter
22  std::vector<std::string> getProcessorIDList(std::string dataBufferID) const;
23 
24  std::vector<std::string> getProducerIDList(std::string dataBufferID) const;
25  bool getProducerStatus(std::string dataBufferID, std::string producerID) const;
26  std::string getProducerClass(std::string dataBufferID, std::string producerID) const;
27 
28  std::vector<std::string> getConsumerIDList(std::string dataBufferID) const;
29  bool getConsumerStatus(std::string dataBufferID, std::string consumerID) const;
30  std::string getConsumerClass(std::string dataBufferID, std::string consumerID) const;
31 
32  private:
33  enum
34  {
35  UniqueID,
36  DataBufferID,
37  ProcessorID,
38  ProcessorType,
39  ProcessorClass,
40  ProcessorStatus
41  };
42 
43  struct Info
44  {
45  std::string class_;
46  bool status_;
47  };
48 
49  struct BufferProcessors
50  {
51  std::map<std::string, Info> producers_;
52  std::map<std::string, Info> consumers_;
53  std::map<std::string, Info> processors_;
54  };
55  // DataBufferID,
56  std::map<std::string, BufferProcessors> processorInfos_;
57 };
58 } // namespace ots
59 #endif