OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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

Definition at line 57 of file ksync_tx_queue.h.

Constructor & Destructor Documentation

KSyncTxQueue::KSyncTxQueue ( KSyncSock sock)

Definition at line 88 of file ksync_tx_queue.cc.

Here is the call graph for this function:

KSyncTxQueue::~KSyncTxQueue ( )

Definition at line 104 of file ksync_tx_queue.cc.

Member Function Documentation

uint64_t KSyncTxQueue::busy_time ( ) const
inline

Definition at line 71 of file ksync_tx_queue.h.

void KSyncTxQueue::ClearStats ( ) const
inline

Definition at line 74 of file ksync_tx_queue.h.

size_t KSyncTxQueue::dequeues ( ) const
inline

Definition at line 67 of file ksync_tx_queue.h.

KSyncTxQueue::DISALLOW_COPY_AND_ASSIGN ( KSyncTxQueue  )
private
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:

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:

size_t KSyncTxQueue::enqueues ( ) const
inline

Definition at line 66 of file ksync_tx_queue.h.

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:

uint32_t KSyncTxQueue::max_queue_len ( ) const
inline

Definition at line 72 of file ksync_tx_queue.h.

size_t KSyncTxQueue::queue_len ( ) const
inline

Definition at line 70 of file ksync_tx_queue.h.

uint32_t KSyncTxQueue::read_events ( ) const
inline

Definition at line 69 of file ksync_tx_queue.h.

bool KSyncTxQueue::Run ( void  )

Definition at line 175 of file ksync_tx_queue.cc.

Here is the call graph for this function:

void KSyncTxQueue::set_measure_busy_time ( bool  val) const
inline

Definition at line 73 of file ksync_tx_queue.h.

void KSyncTxQueue::Shutdown ( )

Definition at line 126 of file ksync_tx_queue.cc.

Here is the call graph for this function:

uint32_t KSyncTxQueue::write_events ( ) const
inline

Definition at line 68 of file ksync_tx_queue.h.

Member Data Documentation

uint64_t KSyncTxQueue::busy_time_
mutableprivate

Definition at line 104 of file ksync_tx_queue.h.

std::string KSyncTxQueue::cpu_pin_policy_
private

Definition at line 92 of file ksync_tx_queue.h.

size_t KSyncTxQueue::dequeues_
mutableprivate

Definition at line 101 of file ksync_tx_queue.h.

size_t KSyncTxQueue::enqueues_
mutableprivate

Definition at line 100 of file ksync_tx_queue.h.

int KSyncTxQueue::event_fd_
private

Definition at line 90 of file ksync_tx_queue.h.

pthread_t KSyncTxQueue::event_thread_
private

Definition at line 96 of file ksync_tx_queue.h.

size_t KSyncTxQueue::max_queue_len_
mutableprivate

Definition at line 98 of file ksync_tx_queue.h.

bool KSyncTxQueue::measure_busy_time_
mutableprivate

Definition at line 105 of file ksync_tx_queue.h.

Queue KSyncTxQueue::queue_
private

Definition at line 94 of file ksync_tx_queue.h.

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

Definition at line 97 of file ksync_tx_queue.h.

size_t KSyncTxQueue::read_events_
mutableprivate

Definition at line 103 of file ksync_tx_queue.h.

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

Definition at line 95 of file ksync_tx_queue.h.

KSyncSock* KSyncTxQueue::sock_
private

Definition at line 93 of file ksync_tx_queue.h.

WorkQueue<IoContext *>* KSyncTxQueue::work_queue_
private

Definition at line 89 of file ksync_tx_queue.h.

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: