#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 &) | |
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 115 of file SingleConsumerQ.h.
Definition at line 96 of file SingleConsumerQ.h.
|
private |
Definition at line 117 of file SingleConsumerQ.h.
Definition at line 97 of file SingleConsumerQ.h.
|
private |
Definition at line 119 of file SingleConsumerQ.h.
edm::SingleConsumerQ::SingleConsumerQ | ( | int | max_event_size, |
int | max_queue_depth | ||
) |
Definition at line 6 of file SingleConsumerQ.cc.
References buffer_pool_, i, and mem_.
Referenced by maxQueueDepth().
edm::SingleConsumerQ::~SingleConsumerQ | ( | ) |
Definition at line 26 of file SingleConsumerQ.cc.
|
private |
void edm::SingleConsumerQ::commitConsumerBuffer | ( | void * | v, |
int | |||
) |
Definition at line 96 of file SingleConsumerQ.cc.
References releaseProducerBuffer().
Referenced by edm::SingleConsumerQ::ConsumerType::commit().
void edm::SingleConsumerQ::commitProducerBuffer | ( | void * | v, |
int | len | ||
) |
Definition at line 51 of file SingleConsumerQ.cc.
References bpos_, fpos_, max_queue_depth_, pop_cond_, push_cond_, queue_, and queue_lock_.
Referenced by edm::SingleConsumerQ::ProducerType::commit().
SingleConsumerQ::Buffer edm::SingleConsumerQ::getConsumerBuffer | ( | ) |
Definition at line 68 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 28 of file SingleConsumerQ.cc.
References buffer_pool_, max_event_size_, pool_cond_, pool_lock_, pos_, and findQualityFiles::v.
|
inline |
|
inline |
Definition at line 108 of file SingleConsumerQ.h.
References max_queue_depth_, and SingleConsumerQ().
void edm::SingleConsumerQ::releaseConsumerBuffer | ( | void * | v | ) |
Definition at line 86 of file SingleConsumerQ.cc.
References releaseProducerBuffer().
Referenced by edm::SingleConsumerQ::ConsumerType::release().
void edm::SingleConsumerQ::releaseProducerBuffer | ( | void * | v | ) |
Definition at line 42 of file SingleConsumerQ.cc.
References buffer_pool_, pool_cond_, pool_lock_, pos_, and findQualityFiles::v.
Referenced by commitConsumerBuffer(), edm::SingleConsumerQ::ProducerType::release(), and releaseConsumerBuffer().
|
private |
Definition at line 127 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 125 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), releaseProducerBuffer(), and SingleConsumerQ().
|
private |
Definition at line 127 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 121 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and maxEventSize().
|
private |
Definition at line 122 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), getConsumerBuffer(), and maxQueueDepth().
|
private |
Definition at line 124 of file SingleConsumerQ.h.
Referenced by SingleConsumerQ().
|
private |
Definition at line 131 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 129 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 132 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 123 of file SingleConsumerQ.h.
Referenced by getProducerBuffer(), and releaseProducerBuffer().
|
private |
Definition at line 133 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 126 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().
|
private |
Definition at line 130 of file SingleConsumerQ.h.
Referenced by commitProducerBuffer(), and getConsumerBuffer().