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"
15 DataProducer(std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID,
unsigned int bufferSize=100);
18 void registerToBuffer (
void);
19 virtual void startProcessingData(std::string runNumber);
20 virtual void stopProcessingData (
void);
22 template<
class D,
class H>
23 int attachToEmptySubBuffer(D*& data, H*& header)
25 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).attachToEmptySubBuffer(data, header);
28 template<
class D,
class H>
29 int setWrittenSubBuffer(
void)
31 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).setWrittenSubBuffer();
34 template<
class D,
class H>
35 int write(
const D& buffer)
37 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).write(buffer);
40 template<
class D,
class H>
41 int write(
const D& buffer,
const H& header)
43 return static_cast<CircularBuffer<D,H>*
>(theCircularBuffer_)->getBuffer(DataProcessor::processorUID_).write(buffer, header);
46 unsigned int getBufferSize(
void){
return bufferSize_;}
48 unsigned int bufferSize_;