OpenSDN source code
KSyncTxQueue Class Reference

#include <ksync_tx_queue.h>

Collaboration diagram for KSyncTxQueue:

Public Types

typedef tbb::concurrent_queue< IoContext * > Queue
 

Public Member Functions

 KSyncTxQueue (KSyncSock *sock)
 
 ~KSyncTxQueue ()
 
void Init (bool use_work_queue, const std::string &cpu_pin_policy)
 
void Shutdown ()
 
bool Run ()
 
size_t enqueues () const
 
size_t dequeues () const
 
uint32_t write_events () const
 
uint32_t read_events () const
 
size_t queue_len () const
 
uint64_t busy_time () const
 
uint32_t max_queue_len () const
 
void set_measure_busy_time (bool val) const
 
void ClearStats () const
 
bool Enqueue (IoContext *io_context)
 

Private Member Functions

bool EnqueueInternal (IoContext *io_context)
 
 DISALLOW_COPY_AND_ASSIGN (KSyncTxQueue)
 

Private Attributes

WorkQueue< IoContext * > * work_queue_
 
int event_fd_
 
std::string cpu_pin_policy_
 
KSyncSocksock_
 
Queue queue_
 
tbb::atomic< bool > shutdown_
 
pthread_t event_thread_
 
tbb::atomic< size_t > queue_len_
 
size_t max_queue_len_
 
size_t enqueues_
 
size_t dequeues_
 
size_t write_events_
 
size_t read_events_
 
uint64_t busy_time_
 
bool measure_busy_time_
 

Detailed Description

Definition at line 55 of file ksync_tx_queue.h.

Member Typedef Documentation

◆ Queue

typedef tbb::concurrent_queue<IoContext *> KSyncTxQueue::Queue

Definition at line 57 of file ksync_tx_queue.h.

Constructor & Destructor Documentation

◆ KSyncTxQueue()

KSyncTxQueue::KSyncTxQueue ( KSyncSock sock)

Definition at line 88 of file ksync_tx_queue.cc.

Here is the call graph for this function:

◆ ~KSyncTxQueue()

KSyncTxQueue::~KSyncTxQueue ( )

Definition at line 104 of file ksync_tx_queue.cc.

Member Function Documentation

◆ busy_time()

uint64_t KSyncTxQueue::busy_time ( ) const
inline

Definition at line 71 of file ksync_tx_queue.h.

◆ ClearStats()

void KSyncTxQueue::ClearStats ( ) const
inline

Definition at line 74 of file ksync_tx_queue.h.

◆ dequeues()

size_t KSyncTxQueue::dequeues ( ) const
inline

Definition at line 67 of file ksync_tx_queue.h.

◆ DISALLOW_COPY_AND_ASSIGN()

KSyncTxQueue::DISALLOW_COPY_AND_ASSIGN ( KSyncTxQueue  )
private

◆ Enqueue()

bool KSyncTxQueue::Enqueue ( IoContext io_context)
inline

Definition at line 82 of file ksync_tx_queue.h.

Here is the call graph for this function:

◆ EnqueueInternal()

bool KSyncTxQueue::EnqueueInternal ( IoContext io_context)
private

Definition at line 148 of file ksync_tx_queue.cc.

Here is the call graph for this function:

◆ enqueues()

size_t KSyncTxQueue::enqueues ( ) const
inline

Definition at line 66 of file ksync_tx_queue.h.

◆ Init()

void KSyncTxQueue::Init ( bool  use_work_queue,
const std::string &  cpu_pin_policy 
)

Definition at line 107 of file ksync_tx_queue.cc.

Here is the call graph for this function:

◆ max_queue_len()

uint32_t KSyncTxQueue::max_queue_len ( ) const
inline

Definition at line 72 of file ksync_tx_queue.h.

◆ queue_len()

size_t KSyncTxQueue::queue_len ( ) const
inline

Definition at line 70 of file ksync_tx_queue.h.

◆ read_events()

uint32_t KSyncTxQueue::read_events ( ) const
inline

Definition at line 69 of file ksync_tx_queue.h.

◆ Run()

bool KSyncTxQueue::Run ( void  )

Definition at line 175 of file ksync_tx_queue.cc.

Here is the call graph for this function:

◆ set_measure_busy_time()

void KSyncTxQueue::set_measure_busy_time ( bool  val) const
inline

Definition at line 73 of file ksync_tx_queue.h.

◆ Shutdown()

void KSyncTxQueue::Shutdown ( )

Definition at line 126 of file ksync_tx_queue.cc.

Here is the call graph for this function:

◆ write_events()

uint32_t KSyncTxQueue::write_events ( ) const
inline

Definition at line 68 of file ksync_tx_queue.h.

Member Data Documentation

◆ busy_time_

uint64_t KSyncTxQueue::busy_time_
mutableprivate

Definition at line 104 of file ksync_tx_queue.h.

◆ cpu_pin_policy_

std::string KSyncTxQueue::cpu_pin_policy_
private

Definition at line 92 of file ksync_tx_queue.h.

◆ dequeues_

size_t KSyncTxQueue::dequeues_
mutableprivate

Definition at line 101 of file ksync_tx_queue.h.

◆ enqueues_

size_t KSyncTxQueue::enqueues_
mutableprivate

Definition at line 100 of file ksync_tx_queue.h.

◆ event_fd_

int KSyncTxQueue::event_fd_
private

Definition at line 90 of file ksync_tx_queue.h.

◆ event_thread_

pthread_t KSyncTxQueue::event_thread_
private

Definition at line 96 of file ksync_tx_queue.h.

◆ max_queue_len_

size_t KSyncTxQueue::max_queue_len_
mutableprivate

Definition at line 98 of file ksync_tx_queue.h.

◆ measure_busy_time_

bool KSyncTxQueue::measure_busy_time_
mutableprivate

Definition at line 105 of file ksync_tx_queue.h.

◆ queue_

Queue KSyncTxQueue::queue_
private

Definition at line 94 of file ksync_tx_queue.h.

◆ queue_len_

tbb::atomic<size_t> KSyncTxQueue::queue_len_
private

Definition at line 97 of file ksync_tx_queue.h.

◆ read_events_

size_t KSyncTxQueue::read_events_
mutableprivate

Definition at line 103 of file ksync_tx_queue.h.

◆ shutdown_

tbb::atomic<bool> KSyncTxQueue::shutdown_
private

Definition at line 95 of file ksync_tx_queue.h.

◆ sock_

KSyncSock* KSyncTxQueue::sock_
private

Definition at line 93 of file ksync_tx_queue.h.

◆ work_queue_

WorkQueue<IoContext *>* KSyncTxQueue::work_queue_
private

Definition at line 89 of file ksync_tx_queue.h.

◆ write_events_

size_t KSyncTxQueue::write_events_
mutableprivate

Definition at line 102 of file ksync_tx_queue.h.


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