tdaq-develop-2025-02-12
Return to top level
CircularBufferBase.h
1
#ifndef _ots_CircularBufferBase_h_
2
#define _ots_CircularBufferBase_h_
3
4
#include <string>
5
6
namespace
ots
7
{
8
class
DataProcessor;
9
12
class
CircularBufferBase
13
{
14
public
:
15
enum
ConsumerPriority
16
{
17
LowConsumerPriority
,
19
HighConsumerPriority
21
};
22
23
CircularBufferBase
(
const
std::string& bufferID);
24
virtual
~
CircularBufferBase
(
void
);
25
26
virtual
void
reset(
void
) = 0;
27
void
registerProducer(
DataProcessor
* producer,
unsigned
int
numberOfSubBuffers = 100);
28
void
registerConsumer(
DataProcessor
* consumer);
29
// void unregisterProducer(DataProcessor* producer);
30
// void unregisterConsumer(DataProcessor* consumer);
31
32
virtual
bool
isEmpty(
void
)
const
= 0;
33
virtual
unsigned
int
getTotalNumberOfSubBuffers(
void
)
const
= 0;
34
virtual
unsigned
int
getProducerBufferSize(
const
std::string& producerID)
const
= 0;
35
36
protected
:
37
virtual
void
registerProducer(
const
std::string& producerID,
38
unsigned
int
numberOfSubBuffers = 100) = 0;
39
virtual
void
registerConsumer(
const
std::string& consumerID,
40
ConsumerPriority
priority) = 0;
41
// virtual void unregisterProducer (const std::string& producerID) = 0;
42
// virtual void unregisterConsume r(const std::string& consumerID) = 0;
43
44
std::string dataBufferId_;
45
std::string mfSubject_;
46
};
47
}
// namespace ots
48
#endif
ots::CircularBufferBase
Definition:
CircularBufferBase.h:13
ots::CircularBufferBase::ConsumerPriority
ConsumerPriority
Definition:
CircularBufferBase.h:16
ots::CircularBufferBase::HighConsumerPriority
@ HighConsumerPriority
Definition:
CircularBufferBase.h:19
ots::CircularBufferBase::LowConsumerPriority
@ LowConsumerPriority
Definition:
CircularBufferBase.h:17
ots::DataProcessor
Definition:
DataProcessor.h:14
ots
Definition:
ArtdaqOtsBuildInfo_module.cc:10
otsdaq
otsdaq
DataManager
CircularBufferBase.h
Generated on Mon Feb 17 2025 17:02:10 for tdaq-develop-2025-02-12 by
1.9.1