$treeview $search $mathjax $extrastylesheet
otsdaq
v2_03_00
$projectbrief
|
$projectbrief
|
$searchbox |
00001 #ifndef _ots_DataProcessor_h_ 00002 #define _ots_DataProcessor_h_ 00003 00004 #include <string> 00005 #include "otsdaq-core/DataManager/CircularBuffer.h" 00006 #include "otsdaq-core/DataManager/CircularBufferBase.h" 00007 #include "otsdaq-core/WorkLoopManager/WorkLoop.h" 00008 00009 namespace ots 00010 { 00011 // DataProcessor 00012 // This class provides common functionality for Data Producers and Consumers. 00013 class DataProcessor 00014 { 00015 public: 00016 DataProcessor(std::string supervisorApplicationUID, 00017 std::string bufferUID, 00018 std::string processorUID); 00019 virtual ~DataProcessor(void); 00020 00021 virtual void registerToBuffer(void) = 0; 00022 // virtual void unregisterFromBuffer(void) = 0; 00023 00024 virtual void startProcessingData(std::string runNumber) = 0; 00025 virtual void stopProcessingData(void) = 0; 00026 virtual void pauseProcessingData(void) { stopProcessingData(); } 00027 virtual void resumeProcessingData(void) { startProcessingData(""); } 00028 00029 // Getters 00030 const std::string& getProcessorID(void) const { return processorUID_; } 00031 00032 void setCircularBuffer(CircularBufferBase* circularBuffer); 00033 00034 protected: 00035 const std::string supervisorApplicationUID_; 00036 const std::string bufferUID_; 00037 const std::string processorUID_; 00038 CircularBufferBase* theCircularBuffer_; 00039 }; 00040 00041 } // namespace ots 00042 00043 #endif