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

Definition at line 43 of file db_partition.cc.

Definition at line 42 of file db_partition.cc.

Definition at line 44 of file db_partition.cc.

Constructor & Destructor Documentation

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

Definition at line 46 of file db_partition.cc.

DBPartition::WorkQueue::~WorkQueue ( )
inline

Definition at line 55 of file db_partition.cc.

Member Function Documentation

int DBPartition::WorkQueue::db_partition_id ( )
inline

Definition at line 116 of file db_partition.cc.

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:

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

Definition at line 89 of file db_partition.cc.

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

Definition at line 76 of file db_partition.cc.

bool DBPartition::WorkQueue::disable ( )
inline

Definition at line 126 of file db_partition.cc.

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

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:

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

Definition at line 107 of file db_partition.cc.

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

Definition at line 122 of file db_partition.cc.

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

Definition at line 137 of file db_partition.cc.

void DBPartition::WorkQueue::MaybeStartRunner ( )

Definition at line 249 of file db_partition.cc.

void DBPartition::WorkQueue::MaybeStartRunnerUnlocked ( )

Definition at line 239 of file db_partition.cc.

Here is the call graph for this function:

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

Definition at line 129 of file db_partition.cc.

bool DBPartition::WorkQueue::RunnerDone ( )

Definition at line 254 of file db_partition.cc.

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:

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

Definition at line 101 of file db_partition.cc.

Here is the call graph for this function:

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

Definition at line 133 of file db_partition.cc.

Member Data Documentation

TablePartList DBPartition::WorkQueue::change_list_
private

Definition at line 144 of file db_partition.cc.

DBPartition* DBPartition::WorkQueue::db_partition_
private

Definition at line 142 of file db_partition.cc.

int DBPartition::WorkQueue::db_partition_id_
private

Definition at line 150 of file db_partition.cc.

bool DBPartition::WorkQueue::disable_
private

Definition at line 151 of file db_partition.cc.

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

Definition at line 41 of file db_partition.cc.

uint64_t DBPartition::WorkQueue::max_request_queue_len_
private

Definition at line 147 of file db_partition.cc.

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

Definition at line 149 of file db_partition.cc.

RemoveQueue DBPartition::WorkQueue::remove_queue_
private

Definition at line 148 of file db_partition.cc.

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

Definition at line 145 of file db_partition.cc.

RequestQueue DBPartition::WorkQueue::request_queue_
private

Definition at line 143 of file db_partition.cc.

bool DBPartition::WorkQueue::running_
private

Definition at line 152 of file db_partition.cc.

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: