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 class DataProcessor
00014 {
00015 public:
00016 DataProcessor(std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID);
00017 virtual ~DataProcessor(void);
00018
00019 virtual void registerToBuffer (void) = 0;
00020 virtual void startProcessingData (std::string runNumber) = 0;
00021 virtual void stopProcessingData (void) = 0;
00022 virtual void pauseProcessingData (void){stopProcessingData();}
00023 virtual void resumeProcessingData(void){startProcessingData("");}
00024
00025
00026 std::string getProcessorID(void);
00027
00028 void setCircularBuffer(CircularBufferBase* circularBuffer);
00029
00030 protected:
00031 const std::string supervisorApplicationUID_;
00032 const std::string bufferUID_;
00033 const std::string processorUID_;
00034 CircularBufferBase* theCircularBuffer_;
00035 };
00036
00037 }
00038
00039 #endif