otsdaq-mu2e-stm  5.02.01
queue_buffer< T > Class Template Reference
+ Collaboration diagram for queue_buffer< T >:

Classes

struct  head
 
struct  packet_header
 
struct  tail
 

Public Member Functions

int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
bool try_push (int chan, int16_t *data)
 
void push (int chan, int16_t *data)
 
bool try_pull (int chan, int16_t *(&data))
 
int16_t * pull (int chan)
 
bool try_push (int chan, int16_t *data)
 
void push (int chan, int16_t *data)
 
bool try_pull (int chan, int16_t *(&data))
 
int16_t * pull (int chan)
 
int try_push (int chan, uint64_t **sizes, int16_t *data, int n, int index)
 
void push (int chan, uint64_t **sizes, int16_t *data, int n)
 
int try_pull (int chan, uint64_t *&sizes, int16_t *&data)
 
int pull (bool *timeout, int chan, uint64_t *&sizes, int16_t *&data)
 
int32_t make_int32_t (int16_t p0, int16_t p1)
 
int64_t increment (int n, int x, uint32_t buffer_size)
 
int try_push (int chan, T *data, int n, int index)
 
void push (int chan, T *data, int n)
 
int try_pull (int chan, T *&data)
 
int pull (bool *timeout, int chan, T *&data)
 
int64_t increment (int n, int x)
 
int try_push (int chan, T *data, int n, int index)
 
void push (int chan, T *data, int n)
 
int try_pull (int chan, T *&data)
 
int pull (int chan, T *&data)
 
int64_t increment (int n, int x)
 
int64_t memPercent (int n, int x)
 
void push (int chan, T *data, int n)
 
int try_pull (int chan, T *&data)
 
int pull (bool *timeout, int chan, T *&data)
 
int64_t increment (int chan, int n, int x)
 
int try_push (int chan, T *data, int n, int index)
 
void push (int chan, T *data, int n)
 
int try_pull (int chan, T *&data)
 
int pull (int chan, T *&data)
 
int64_t increment (int n, int x)
 
int64_t memPercent (int n, int x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
uint64_t try_push (int chan, int16_t *data, uint64_t n, uint64_t index)
 
void push (int chan, int16_t *data, uint64_t n)
 
uint64_t try_pull (int chan, int16_t *&data)
 
uint64_t pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (uint64_t n, uint64_t x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
uint64_t try_pull (int chan, int16_t *&data)
 
uint64_t pull (bool *timeout, int chan, int16_t *&data)
 
int32_t make_int32_t (int16_t p0, int16_t p1)
 
int64_t increment (int n, int x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
 queue_buffer (uint64_t buffer_len)
 
uint64_t try_push (int chan, int16_t *data, uint64_t n)
 
void push (int chan, int16_t *data, uint64_t n)
 
uint64_t try_pull (int chan, int16_t *&data)
 
uint64_t pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (uint64_t n, uint64_t x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 
int try_push (int chan, int16_t *data, int n)
 
void push (int chan, int16_t *data, int n)
 
int try_pull (int chan, int16_t *&data)
 
int pull (bool *timeout, int chan, int16_t *&data)
 
int64_t increment (int n, int x)
 

Public Attributes

std::atomic< int64_t > write [CHNUM]
 
std::atomic< int64_t > read [CHNUM]
 
std::atomic< int64_t > occupancy [CHNUM]
 
int64_t current_tail [CHNUM]
 
int64_t next_tail [CHNUM]
 
int64_t current_head [CHNUM]
 
int64_t write_num [CHNUM]
 
int64_t read_num [CHNUM]
 
int16_t * buffer [CHNUM] = {{{}}}
 
std::atomic< uint32_t > occupancy_size [CHNUM]
 
std::atomic< uint32_t > occupancy_data [CHNUM]
 
std::atomic< tail > tail_ [CHNUM]
 
std::atomic< head > head_ [CHNUM]
 
tail current_tail [CHNUM]
 
int32_t current_tail_size [CHNUM]
 
int32_t current_tail_data [CHNUM]
 
head current_head [CHNUM]
 
int32_t current_head_size [CHNUM]
 
int32_t current_head_data [CHNUM]
 
int32_t write_num_size [CHNUM]
 
int32_t write_num_data [CHNUM]
 
int32_t read_num_size [CHNUM]
 
int32_t read_num_data [CHNUM]
 
uint64_t * size_buffer [CHNUM]
 
packet_header * header_buffer [CHNUM]
 
int16_t * data_buffer [CHNUM]
 
int pull_max = 0
 
T pdata [CHNUM]
 
T * buffer [CHNUM]
 
std::atomic< int64_t > numInBuffer [CHNUM]
 
int64_t writeNum [CHNUM]
 
int64_t readNum [CHNUM]
 
int64_t writeNumInBuffer [CHNUM]
 
int64_t readNumInBuffer [CHNUM]
 
bool startOfRun [CHNUM] = {true, true}
 
std::atomic< int64_t > tail [CHNUM]
 
std::atomic< int64_t > head [CHNUM]
 
int64_t RING_BUFFER_LEN = 0
 static const int64_t RING_BUFFER_LEN = RING_BUFFER_NUM*UDPsocket::MAX_UDP_LEN;
 
int16_t * process_buffer [CHNUM]
 

Static Public Attributes

static const int64_t size = 536870912
 
static const uint SIZE_INDEX = 0
 
static const uint ACC_SIZE_INDEX = 1
 
static const int32_t INT32_T_MAX = 2147483647
 
static const uint64_t RING_BUFFER_NUM = 65536
 
static const uint32_t RING_BUFFER_LEN = RING_BUFFER_NUM*packet_len
 
static const int64_t RING_BUFFER_NUM = 65536
 
static const int64_t RING_BUFFER_LEN = 65536 *UDPsocket::MAX_UDP_LEN
 

Detailed Description

template<typename T>
class queue_buffer< T >

Definition at line 15 of file queue.hh.


The documentation for this class was generated from the following files: