00001 #ifndef ots_DataBufferConfiguration_h
00002 #define ots_DataBufferConfiguration_h
00003
00004 #include "otsdaq-core/ConfigurationDataFormats/ConfigurationBase.h"
00005
00006 #include <string>
00007 #include <map>
00008 #include <vector>
00009
00010 namespace ots
00011 {
00012
00013 class DataBufferConfiguration : public ConfigurationBase
00014 {
00015
00016 public:
00017
00018 DataBufferConfiguration(void);
00019 virtual ~DataBufferConfiguration(void);
00020
00021
00022 void init(ConfigurationManager *configManager);
00023
00024
00025 std::vector<std::string> getProcessorIDList (std::string dataBufferID) const;
00026
00027 std::vector<std::string> getProducerIDList (std::string dataBufferID) const;
00028 bool getProducerStatus (std::string dataBufferID, std::string producerID) const;
00029 std::string getProducerClass (std::string dataBufferID, std::string producerID) const;
00030
00031 std::vector<std::string> getConsumerIDList (std::string dataBufferID) const;
00032 bool getConsumerStatus (std::string dataBufferID, std::string consumerID) const;
00033 std::string getConsumerClass (std::string dataBufferID, std::string consumerID) const;
00034
00035 private:
00036
00037 enum{
00038 UniqueID,
00039 DataBufferID,
00040 ProcessorID,
00041 ProcessorType,
00042 ProcessorClass,
00043 ProcessorStatus
00044 };
00045
00046 struct Info
00047 {
00048 std::string class_;
00049 bool status_;
00050 };
00051
00052 struct BufferProcessors
00053 {
00054 std::map<std::string, Info> producers_;
00055 std::map<std::string, Info> consumers_;
00056 std::map<std::string, Info> processors_;
00057 };
00058
00059 std::map<std::string, BufferProcessors> processorInfos_;
00060
00061 };
00062 }
00063 #endif