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