00001 #ifndef _ots_DataProcessor_h_
00002 #define _ots_DataProcessor_h_
00003
00004 #include "otsdaq-core/WorkLoopManager/WorkLoop.h"
00005 #include "otsdaq-core/DataManager/CircularBuffer.h"
00006 #include "otsdaq-core/DataManager/CircularBufferBase.h"
00007 #include <string>
00008
00009 namespace ots
00010 {
00011
00012
00013
00014 class DataProcessor
00015 {
00016 public:
00017 DataProcessor(std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID);
00018 virtual ~DataProcessor(void);
00019
00020 virtual void registerToBuffer (void) = 0;
00021 virtual void startProcessingData (std::string runNumber) = 0;
00022 virtual void stopProcessingData (void) = 0;
00023 virtual void pauseProcessingData (void){stopProcessingData();}
00024 virtual void resumeProcessingData(void){startProcessingData("");}
00025
00026
00027 std::string getProcessorID(void);
00028
00029 void setCircularBuffer(CircularBufferBase* circularBuffer);
00030
00031 protected:
00032 const std::string supervisorApplicationUID_;
00033 const std::string bufferUID_;
00034 const std::string processorUID_;
00035 CircularBufferBase* theCircularBuffer_;
00036 };
00037
00038 }
00039
00040 #endif