#include <SingleConsumerQ.h>
Classes | |
struct | Buffer |
struct | ConsumerType |
class | OperateBuffer |
struct | ProducerType |
Public Types | |
typedef OperateBuffer< ConsumerType > | ConsumerBuffer |
typedef OperateBuffer< ProducerType > | ProducerBuffer |
Public Member Functions | |
void | commitConsumerBuffer (void *, int) |
void | commitProducerBuffer (void *, int) |
Buffer | getConsumerBuffer () |
Buffer | getProducerBuffer () |
int | maxEventSize () const |
int | maxQueueDepth () const |
void | releaseConsumerBuffer (void *) |
void | releaseProducerBuffer (void *) |
SingleConsumerQ (int max_event_size, int max_queue_depth) | |
~SingleConsumerQ () | |
Private Types | |
typedef std::vector< char > | ByteArray |
typedef std::vector< void * > | Pool |
typedef std::vector< Buffer > | Queue |
Private Member Functions | |
SingleConsumerQ (const SingleConsumerQ &)=delete | |
Private Attributes | |
unsigned int | bpos_ |
Pool | buffer_pool_ |
unsigned int | fpos_ |
int | max_event_size_ |
int | max_queue_depth_ |
ByteArray | mem_ |
std::condition_variable | pool_cond_ |
std::mutex | pool_lock_ |
std::condition_variable | pop_cond_ |
int | pos_ |
std::condition_variable | push_cond_ |
Queue | queue_ |
std::mutex | queue_lock_ |
Definition at line 43 of file SingleConsumerQ.h.
|
private |
Definition at line 108 of file SingleConsumerQ.h.
Definition at line 89 of file SingleConsumerQ.h.
|
private |
Definition at line 110 of file SingleConsumerQ.h.
Definition at line 90 of file SingleConsumerQ.h.
|
private |
Definition at line 112 of file SingleConsumerQ.h.
edm::SingleConsumerQ::SingleConsumerQ | ( | int | max_event_size, |
int | max_queue_depth | ||
) |
Definition at line 5 of file SingleConsumerQ.cc.
References buffer_pool_, mps_fire::i, reco_skim_cfg_mod::max_event_size, and mem_.
edm::SingleConsumerQ::~SingleConsumerQ | ( | ) |
Definition at line 25 of file SingleConsumerQ.cc.
|
privatedelete |
void edm::SingleConsumerQ::commitConsumerBuffer | ( | void * | v, |
int | |||
) |
Definition at line 87 of file SingleConsumerQ.cc.
References releaseProducerBuffer(), and findQualityFiles::v.
void edm::SingleConsumerQ::commitProducerBuffer | ( | void * | v, |
int | len | ||
) |
Definition at line 47 of file SingleConsumerQ.cc.
References bpos_, fpos_, max_queue_depth_, pop_cond_, push_cond_, queue_, queue_lock_, and findQualityFiles::v.
SingleConsumerQ::Buffer edm::SingleConsumerQ::getConsumerBuffer | ( | ) |
Definition at line 62 of file SingleConsumerQ.cc.
References bpos_, fpos_, max_queue_depth_, pop_cond_, push_cond_, queue_, queue_lock_, and findQualityFiles::v.
SingleConsumerQ::Buffer edm::SingleConsumerQ::getProducerBuffer | ( | ) |
Definition at line 27 of file SingleConsumerQ.cc.
References buffer_pool_, max_event_size_, pool_cond_, pool_lock_, pos_, and findQualityFiles::v.
|
inline |
|
inline |
void edm::SingleConsumerQ::releaseConsumerBuffer | ( | void * | v | ) |
Definition at line 78 of file SingleConsumerQ.cc.
References releaseProducerBuffer(), and findQualityFiles::v.
void edm::SingleConsumerQ::releaseProducerBuffer | ( | void * | v | ) |
Definition at line 39 of file SingleConsumerQ.cc.
References buffer_pool_, pool_cond_, pool_lock_, pos_, and findQualityFiles::v.
Referenced by commitConsumerBuffer(), and releaseConsumerBuffer().
|
private |
Definition at line 120 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 118 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), releaseProducerBuffer(), and SingleConsumerQ().
|
private |
Definition at line 120 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 114 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and maxEventSize().
|
private |
Definition at line 115 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), getConsumerBuffer(), and maxQueueDepth().
|
private |
Definition at line 117 of file SingleConsumerQ.h.
Referenced by SingleConsumerQ().
|
private |
Definition at line 124 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 122 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 125 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 116 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 126 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 119 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 123 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().