otsdaq  3.11.00
CircularBufferBase.h
1 #ifndef _ots_CircularBufferBase_h_
2 #define _ots_CircularBufferBase_h_
3 
4 #include <string>
5 
6 namespace ots
7 {
8 class DataProcessor;
9 
13 {
14  public:
16  {
21  };
22 
23  CircularBufferBase(const std::string& bufferID);
24  virtual ~CircularBufferBase(void);
25 
26  virtual void reset(void) = 0;
27  void registerProducer(DataProcessor* producer, unsigned int numberOfSubBuffers = 100);
28  void registerConsumer(DataProcessor* consumer);
29  // void unregisterProducer(DataProcessor* producer);
30  // void unregisterConsumer(DataProcessor* consumer);
31 
32  virtual bool isEmpty(void) const = 0;
33  virtual unsigned int getTotalNumberOfSubBuffers(void) const = 0;
34  virtual unsigned int getProducerBufferSize(const std::string& producerID) const = 0;
35  virtual unsigned int getProducerWrittenBuffers(const std::string& producerID) const = 0;
36 
37  protected:
38  virtual void registerProducer(const std::string& producerID,
39  unsigned int numberOfSubBuffers = 100) = 0;
40  virtual void registerConsumer(const std::string& consumerID,
41  ConsumerPriority priority) = 0;
42  // virtual void unregisterProducer (const std::string& producerID) = 0;
43  // virtual void unregisterConsume r(const std::string& consumerID) = 0;
44 
45  std::string dataBufferId_;
46  std::string mfSubject_;
47 };
48 } // namespace ots
49 #endif
virtual unsigned int getProducerWrittenBuffers(const std::string &producerID) const =0
sub-buffers written but not yet read by every consumer
defines used also by OtsConfigurationWizardSupervisor