1 #ifndef _ots_DataManager_h_
2 #define _ots_DataManager_h_
4 #include "otsdaq-core/Configurable/Configurable.h"
5 #include "otsdaq-core/DataManager/CircularBuffer.h"
6 #include "otsdaq-core/FiniteStateMachine/VStateMachine.h"
7 #include "otsdaq-core/Macros/CoutMacros.h"
8 #include "otsdaq-core/MessageFacility/MessageFacility.h"
18 class DataProducerBase;
20 class CircularBufferBase;
29 const std::string& supervisorConfigurationPath);
33 virtual void configure(
void);
34 virtual void halt(
void);
35 virtual void pause(
void);
36 virtual void resume(
void);
37 virtual void start(std::string runNumber);
38 virtual void stop(
void);
40 template<
class D,
class H>
41 void configureBuffer(
const std::string& bufferUID)
44 buffers_[bufferUID].status_ = Initialized;
47 void registerProducer(
const std::string& bufferUID,
50 void registerConsumer(
const std::string& bufferUID,
55 const std::string& feProducerID);
61 void dumpStatus(std::ostream* out = (std::ostream*)&(std::cout))
const;
64 void destroyBuffers(
void);
70 void stopAllBuffers(
void);
71 void resumeAllBuffers(
void);
72 void pauseAllBuffers(
void);
74 void startBuffer(
const std::string& bufferUID, std::string runNumber);
75 void stopBuffer(
const std::string& bufferUID);
76 void resumeBuffer(
const std::string& bufferUID);
77 void pauseBuffer(
const std::string& bufferUID);
96 std::vector<DataProducerBase*> producers_;
97 std::vector<DataConsumer*> consumers_;
100 std::map<std::string ,
105 bool parentSupervisorHasFrontends_;
109 const std::map<std::string ,
Buffer>& getBuffers(
void)
const
void unregisterFEProducer(const std::string &bufferID, const std::string &feProducerID)
void startAllBuffers(const std::string &runNumber)