1 #ifndef _ots_DataManager_h_
2 #define _ots_DataManager_h_
4 #include "otsdaq-core/MessageFacility/MessageFacility.h"
5 #include "otsdaq-core/Macros/CoutHeaderMacros.h"
6 #include "otsdaq-core/FiniteStateMachine/VStateMachine.h"
7 #include "otsdaq-core/DataManager/CircularBuffer.h"
8 #include "otsdaq-core/Configurable/Configurable.h"
20 class CircularBufferBase;
29 virtual void configure(
void);
30 virtual void halt (
void);
31 virtual void pause (
void);
32 virtual void resume (
void);
33 virtual void start (std::string runNumber);
34 virtual void stop (
void);
38 template<
class D,
class H>
39 void configureBuffer(std::string bufferUID)
42 buffers_[bufferUID].status_ = Initialized;
44 void registerProducer(std::string bufferUID,
DataProducer* producer);
45 void registerConsumer(std::string bufferUID,
DataConsumer* consumer,
bool registerToBuffer=
true);
48 void eraseAllBuffers (
void);
52 void stopAllBuffers (
void);
53 void resumeAllBuffers(
void);
54 void pauseAllBuffers (
void);
56 void startBuffer (std::string bufferUID, std::string runNumber);
57 void stopBuffer (std::string bufferUID);
58 void resumeBuffer (std::string bufferUID);
59 void pauseBuffer (std::string bufferUID);
69 enum BufferStatus {Initialized, Running};
71 bool unregisterConsumer(std::string consumerID);
72 bool deleteBuffer (std::string bufferUID);
76 std::vector<std::shared_ptr<DataProducer>> producers_;
78 std::vector<std::shared_ptr<DataConsumer>> consumers_;
81 std::map<std::string, Buffer> buffers_;
void eraseBuffer(std::string bufferUID)
!!!!Delete all Buffers and all the pointers of the producers and consumers
void startAllBuffers(std::string runNumber)
!!!!Delete all the pointers of the producers and consumers