OpenSDN source code
DBPartition::WorkQueue Class Reference
Collaboration diagram for DBPartition::WorkQueue:

Public Types

typedef concurrent_queue< RequestQueueEntry * > RequestQueue
 
typedef concurrent_queue< RemoveQueueEntry * > RemoveQueue
 
typedef std::list< DBTablePartBase * > TablePartList
 

Public Member Functions

 WorkQueue (DBPartition *partition, int partition_id)
 
 ~WorkQueue ()
 
bool EnqueueRequest (RequestQueueEntry *req_entry)
 
bool DequeueRequest (RequestQueueEntry **req_entry)
 
void EnqueueRemove (RemoveQueueEntry *rm_entry)
 
bool DequeueRemove (RemoveQueueEntry **rm_entry)
 
void MaybeStartRunnerUnlocked ()
 
void MaybeStartRunner ()
 
bool RunnerDone ()
 
void SetActive (DBTablePartBase *tpart)
 
DBTablePartBaseGetActiveTable ()
 
int db_partition_id ()
 
int db_task_id () const
 
bool IsDBQueueEmpty () const
 
bool disable ()
 
void set_disable (bool disable)
 
long request_queue_len () const
 
uint64_t total_request_count () const
 
uint64_t max_request_queue_len () const
 

Static Public Attributes

static const int kThreshold = 1024
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (WorkQueue)
 

Private Attributes

DBPartitiondb_partition_
 
RequestQueue request_queue_
 
TablePartList change_list_
 
atomic< long > request_count_
 
uint64_t total_request_count_
 
uint64_t max_request_queue_len_
 
RemoveQueue remove_queue_
 
tbb::mutex mutex_
 
int db_partition_id_
 
bool disable_
 
bool running_
 

Detailed Description

Definition at line 39 of file db_partition.cc.

Member Typedef Documentation

◆ RemoveQueue

Definition at line 43 of file db_partition.cc.

◆ RequestQueue

Definition at line 42 of file db_partition.cc.

◆ TablePartList

Definition at line 44 of file db_partition.cc.

Constructor & Destructor Documentation

◆ WorkQueue()

DBPartition::WorkQueue::WorkQueue ( DBPartition partition,
int  partition_id 
)
inlineexplicit

Definition at line 46 of file db_partition.cc.

◆ ~WorkQueue()

DBPartition::WorkQueue::~WorkQueue ( )
inline

Definition at line 55 of file db_partition.cc.

Member Function Documentation

◆ db_partition_id()

int DBPartition::WorkQueue::db_partition_id ( )
inline

Definition at line 116 of file db_partition.cc.

◆ db_task_id()

int DBPartition::WorkQueue::db_task_id ( ) const
inline

Definition at line 120 of file db_partition.cc.

Here is the call graph for this function:

◆ DequeueRemove()

bool DBPartition::WorkQueue::DequeueRemove ( RemoveQueueEntry **  rm_entry)
inline

Definition at line 89 of file db_partition.cc.

◆ DequeueRequest()

bool DBPartition::WorkQueue::DequeueRequest ( RequestQueueEntry **  req_entry)
inline

Definition at line 76 of file db_partition.cc.

◆ disable()

bool DBPartition::WorkQueue::disable ( )
inline

Definition at line 126 of file db_partition.cc.

◆ DISALLOW_COPY_AND_ASSIGN()

DBPartition::WorkQueue::DISALLOW_COPY_AND_ASSIGN ( WorkQueue  )
private

◆ EnqueueRemove()

void DBPartition::WorkQueue::EnqueueRemove ( RemoveQueueEntry rm_entry)
inline

Definition at line 84 of file db_partition.cc.

Here is the call graph for this function:

◆ EnqueueRequest()

bool DBPartition::WorkQueue::EnqueueRequest ( RequestQueueEntry req_entry)
inline

Definition at line 65 of file db_partition.cc.

Here is the call graph for this function:

◆ GetActiveTable()

DBTablePartBase* DBPartition::WorkQueue::GetActiveTable ( )
inline

Definition at line 107 of file db_partition.cc.

◆ IsDBQueueEmpty()

bool DBPartition::WorkQueue::IsDBQueueEmpty ( ) const
inline

Definition at line 122 of file db_partition.cc.

◆ max_request_queue_len()

uint64_t DBPartition::WorkQueue::max_request_queue_len ( ) const
inline

Definition at line 137 of file db_partition.cc.

◆ MaybeStartRunner()

void DBPartition::WorkQueue::MaybeStartRunner ( )

Definition at line 249 of file db_partition.cc.

◆ MaybeStartRunnerUnlocked()

void DBPartition::WorkQueue::MaybeStartRunnerUnlocked ( )

Definition at line 239 of file db_partition.cc.

Here is the call graph for this function:

◆ request_queue_len()

long DBPartition::WorkQueue::request_queue_len ( ) const
inline

Definition at line 129 of file db_partition.cc.

◆ RunnerDone()

bool DBPartition::WorkQueue::RunnerDone ( )

Definition at line 254 of file db_partition.cc.

◆ set_disable()

void DBPartition::WorkQueue::set_disable ( bool  disable)
inline

Definition at line 127 of file db_partition.cc.

Here is the call graph for this function:

◆ SetActive()

void DBPartition::WorkQueue::SetActive ( DBTablePartBase tpart)
inline

Definition at line 101 of file db_partition.cc.

Here is the call graph for this function:

◆ total_request_count()

uint64_t DBPartition::WorkQueue::total_request_count ( ) const
inline

Definition at line 133 of file db_partition.cc.

Member Data Documentation

◆ change_list_

TablePartList DBPartition::WorkQueue::change_list_
private

Definition at line 144 of file db_partition.cc.

◆ db_partition_

DBPartition* DBPartition::WorkQueue::db_partition_
private

Definition at line 142 of file db_partition.cc.

◆ db_partition_id_

int DBPartition::WorkQueue::db_partition_id_
private

Definition at line 150 of file db_partition.cc.

◆ disable_

bool DBPartition::WorkQueue::disable_
private

Definition at line 151 of file db_partition.cc.

◆ kThreshold

const int DBPartition::WorkQueue::kThreshold = 1024
static

Definition at line 41 of file db_partition.cc.

◆ max_request_queue_len_

uint64_t DBPartition::WorkQueue::max_request_queue_len_
private

Definition at line 147 of file db_partition.cc.

◆ mutex_

tbb::mutex DBPartition::WorkQueue::mutex_
private

Definition at line 149 of file db_partition.cc.

◆ remove_queue_

RemoveQueue DBPartition::WorkQueue::remove_queue_
private

Definition at line 148 of file db_partition.cc.

◆ request_count_

atomic<long> DBPartition::WorkQueue::request_count_
private

Definition at line 145 of file db_partition.cc.

◆ request_queue_

RequestQueue DBPartition::WorkQueue::request_queue_
private

Definition at line 143 of file db_partition.cc.

◆ running_

bool DBPartition::WorkQueue::running_
private

Definition at line 152 of file db_partition.cc.

◆ total_request_count_

uint64_t DBPartition::WorkQueue::total_request_count_
private

Definition at line 146 of file db_partition.cc.


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