1 #ifndef _ots_DataProducer_h_
2 #define _ots_DataProducer_h_
4 #include "otsdaq-core/WorkLoopManager/WorkLoop.h"
5 #include "otsdaq-core/DataManager/DataProcessor.h"
6 #include "otsdaq-core/DataManager/CircularBuffer.h"
18 DataProducer(std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID,
unsigned int bufferSize=100);
21 void registerToBuffer (
void);
22 virtual void startProcessingData(std::string runNumber);
23 virtual void stopProcessingData (
void);
25 template<
class D,
class H>
26 int attachToEmptySubBuffer(D*& data, H*& header)
28 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).attachToEmptySubBuffer(data, header);
31 template<
class D,
class H>
32 int setWrittenSubBuffer(
void)
34 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).setWrittenSubBuffer();
37 template<
class D,
class H>
38 int write(
const D& buffer)
40 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).write(buffer);
43 template<
class D,
class H>
44 int write(
const D& buffer,
const H& header)
46 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).write(buffer, header);
49 unsigned int getBufferSize(
void){
return bufferSize_;}
51 unsigned int bufferSize_;