Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
grpc_core::InfLenFIFOQueue Class Reference

#include <mpmcqueue.h>

Inheritance diagram for grpc_core::InfLenFIFOQueue:
Inheritance graph
[legend]

Classes

struct  Node
 
struct  Stats
 
struct  Waiter
 

Public Member Functions

int count () const override
 
void * Get (gpr_timespec *wait_time) override
 
 InfLenFIFOQueue ()
 
int init_num_nodes () const
 
int num_nodes () const
 
void Put (void *elem) override
 
 ~InfLenFIFOQueue () override
 
- Public Member Functions inherited from grpc_core::MPMCQueueInterface
virtual ~MPMCQueueInterface ()
 

Private Member Functions

NodeAllocateNodes (int num)
 
void * PopFront ()
 
void PushWaiter (Waiter *waiter)
 
void RemoveWaiter (Waiter *waiter)
 
WaiterTopWaiter ()
 

Private Attributes

gpr_timespec busy_time
 
std::atomic< intcount_ {0}
 
Node ** delete_list_ = nullptr
 
size_t delete_list_count_ = 0
 
size_t delete_list_size_ = 0
 
Mutex mu_
 
int num_nodes_ = 0
 
Nodequeue_head_ = nullptr
 
Nodequeue_tail_ = nullptr
 
Stats stats_
 
Waiter waiters_
 

Static Private Attributes

static const int kDeleteListInitSize = 1024
 
static const int kQueueInitNumNodes = 1024
 

Detailed Description

Definition at line 52 of file mpmcqueue.h.

Constructor & Destructor Documentation

◆ InfLenFIFOQueue()

grpc_core::InfLenFIFOQueue::InfLenFIFOQueue ( )

Definition at line 80 of file mpmcqueue.cc.

◆ ~InfLenFIFOQueue()

grpc_core::InfLenFIFOQueue::~InfLenFIFOQueue ( )
override

Definition at line 94 of file mpmcqueue.cc.

Member Function Documentation

◆ AllocateNodes()

InfLenFIFOQueue::Node * grpc_core::InfLenFIFOQueue::AllocateNodes ( int  num)
private

Definition at line 68 of file mpmcqueue.cc.

◆ count()

int grpc_core::InfLenFIFOQueue::count ( ) const
inlineoverridevirtual

Implements grpc_core::MPMCQueueInterface.

Definition at line 74 of file mpmcqueue.h.

◆ Get()

void * grpc_core::InfLenFIFOQueue::Get ( gpr_timespec wait_time)
overridevirtual

Implements grpc_core::MPMCQueueInterface.

Definition at line 142 of file mpmcqueue.cc.

◆ init_num_nodes()

int grpc_core::InfLenFIFOQueue::init_num_nodes ( ) const
inline

Definition at line 88 of file mpmcqueue.h.

◆ num_nodes()

int grpc_core::InfLenFIFOQueue::num_nodes ( ) const
inline

Definition at line 85 of file mpmcqueue.h.

◆ PopFront()

void * grpc_core::InfLenFIFOQueue::PopFront ( )
inlineprivate

Definition at line 27 of file mpmcqueue.cc.

◆ PushWaiter()

void grpc_core::InfLenFIFOQueue::PushWaiter ( Waiter waiter)
private

Definition at line 167 of file mpmcqueue.cc.

◆ Put()

void grpc_core::InfLenFIFOQueue::Put ( void *  elem)
overridevirtual

Implements grpc_core::MPMCQueueInterface.

Definition at line 102 of file mpmcqueue.cc.

◆ RemoveWaiter()

void grpc_core::InfLenFIFOQueue::RemoveWaiter ( Waiter waiter)
private

Definition at line 174 of file mpmcqueue.cc.

◆ TopWaiter()

InfLenFIFOQueue::Waiter * grpc_core::InfLenFIFOQueue::TopWaiter ( )
private

Definition at line 180 of file mpmcqueue.cc.

Member Data Documentation

◆ busy_time

gpr_timespec grpc_core::InfLenFIFOQueue::busy_time
private

Definition at line 160 of file mpmcqueue.h.

◆ count_

std::atomic<int> grpc_core::InfLenFIFOQueue::count_ {0}
private

Definition at line 156 of file mpmcqueue.h.

◆ delete_list_

Node** grpc_core::InfLenFIFOQueue::delete_list_ = nullptr
private

Definition at line 148 of file mpmcqueue.h.

◆ delete_list_count_

size_t grpc_core::InfLenFIFOQueue::delete_list_count_ = 0
private

Definition at line 150 of file mpmcqueue.h.

◆ delete_list_size_

size_t grpc_core::InfLenFIFOQueue::delete_list_size_ = 0
private

Definition at line 151 of file mpmcqueue.h.

◆ kDeleteListInitSize

const int grpc_core::InfLenFIFOQueue::kDeleteListInitSize = 1024
staticprivate

Definition at line 144 of file mpmcqueue.h.

◆ kQueueInitNumNodes

const int grpc_core::InfLenFIFOQueue::kQueueInitNumNodes = 1024
staticprivate

Definition at line 146 of file mpmcqueue.h.

◆ mu_

Mutex grpc_core::InfLenFIFOQueue::mu_
private

Definition at line 140 of file mpmcqueue.h.

◆ num_nodes_

int grpc_core::InfLenFIFOQueue::num_nodes_ = 0
private

Definition at line 157 of file mpmcqueue.h.

◆ queue_head_

Node* grpc_core::InfLenFIFOQueue::queue_head_ = nullptr
private

Definition at line 154 of file mpmcqueue.h.

◆ queue_tail_

Node* grpc_core::InfLenFIFOQueue::queue_tail_ = nullptr
private

Definition at line 155 of file mpmcqueue.h.

◆ stats_

Stats grpc_core::InfLenFIFOQueue::stats_
private

Definition at line 159 of file mpmcqueue.h.

◆ waiters_

Waiter grpc_core::InfLenFIFOQueue::waiters_
private

Definition at line 141 of file mpmcqueue.h.


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


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:36