otsdaq  v2_03_00
DataProcessor.h
1 #ifndef _ots_DataProcessor_h_
2 #define _ots_DataProcessor_h_
3 
4 #include <string>
5 #include "otsdaq-core/DataManager/CircularBuffer.h"
6 #include "otsdaq-core/DataManager/CircularBufferBase.h"
7 #include "otsdaq-core/WorkLoopManager/WorkLoop.h"
8 
9 namespace ots
10 {
11 // DataProcessor
12 // This class provides common functionality for Data Producers and Consumers.
14 {
15  public:
16  DataProcessor(std::string supervisorApplicationUID,
17  std::string bufferUID,
18  std::string processorUID);
19  virtual ~DataProcessor(void);
20 
21  virtual void registerToBuffer(void) = 0;
22  // virtual void unregisterFromBuffer(void) = 0;
23 
24  virtual void startProcessingData(std::string runNumber) = 0;
25  virtual void stopProcessingData(void) = 0;
26  virtual void pauseProcessingData(void) { stopProcessingData(); }
27  virtual void resumeProcessingData(void) { startProcessingData(""); }
28 
29  // Getters
30  const std::string& getProcessorID(void) const { return processorUID_; }
31 
32  void setCircularBuffer(CircularBufferBase* circularBuffer);
33 
34  protected:
35  const std::string supervisorApplicationUID_;
36  const std::string bufferUID_;
37  const std::string processorUID_;
38  CircularBufferBase* theCircularBuffer_;
39 };
40 
41 } // namespace ots
42 
43 #endif