otsdaq
v1_01_04
Main Page
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
src
otsdaq-core
DataManager
CircularBufferBase.h
1
#ifndef _ots_CircularBufferBase_h_
2
#define _ots_CircularBufferBase_h_
3
4
#include <string>
5
6
namespace
ots
7
{
8
9
class
DataProcessor;
10
11
class
CircularBufferBase
12
{
13
public
:
14
enum
ConsumerPriority
15
{
16
LowConsumerPriority,
//If the buffers are full because a low priority consumer didn't emptied them then overwrite
17
HighConsumerPriority
//Can't overwrite but need to wait for sometime before writing a buffer
18
};
19
20
CircularBufferBase
();
21
virtual
~
CircularBufferBase
();
22
23
virtual
void
reset (
void
) = 0;
24
void
registerProducer (
DataProcessor
* producer,
unsigned
int
numberOfSubBuffers=100);
25
void
registerConsumer (
DataProcessor
* consumer);
26
void
unregisterConsumer(
DataProcessor
* consumer);
27
//void registerConsumer(std::string name, ConsumerPriority priority);
28
29
virtual
bool
isEmpty (
void
) = 0;
30
virtual
unsigned
int
getNumberOfBuffers(
void
) = 0;
31
32
protected
:
33
virtual
void
registerProducer (std::string producerID,
unsigned
int
numberOfSubBuffers=100) = 0;
34
virtual
void
registerConsumer (std::string consumerID, ConsumerPriority priority) = 0;
35
virtual
void
unregisterConsumer(std::string consumerID) = 0;
36
};
37
}
38
#endif
ots::DataProcessor
Definition:
DataProcessor.h:13
ots::CircularBufferBase
Definition:
CircularBufferBase.h:11
Generated on Mon Dec 4 2017 10:04:04 for otsdaq by
1.8.5