OpenSDN source code
DBTableBase Class Referenceabstract

#include <db_table.h>

Inheritance diagram for DBTableBase:
Collaboration diagram for DBTableBase:

Classes

class  ListenerInfo
 

Public Types

typedef boost::function< void(DBTablePartBase *, DBEntryBase *)> ChangeCallback
 
typedef int ListenerId
 

Public Member Functions

 DBTableBase (DB *db, const std::string &name)
 
virtual ~DBTableBase ()
 
bool Enqueue (DBRequest *req)
 
void EnqueueRemove (DBEntryBase *db_entry)
 
virtual DBTablePartBaseGetTablePartition (const DBRequestKey *key)=0
 
virtual DBTablePartBaseGetTablePartition (const DBEntryBase *entry)=0
 
virtual DBTablePartBaseGetTablePartition (const int index)=0
 
virtual void Change (DBEntryBase *)=0
 
virtual void AddRemoveCallback (const DBEntryBase *entry, bool add) const
 
ListenerId Register (ChangeCallback callback, const std::string &name="unspecified")
 
void Unregister (ListenerId listener)
 
void RunNotify (DBTablePartBase *tpart, DBEntryBase *entry)
 
void AddToDBStateCount (ListenerId listener, int count)
 
uint64_t GetDBStateCount (ListenerId listener)
 
virtual size_t Size () const
 
bool empty () const
 
virtual void RetryDelete ()
 
virtual bool MayDelete () const
 
DBdatabase ()
 
const DBdatabase () const
 
const std::string & name () const
 
bool HasListeners () const
 
size_t GetListenerCount () const
 
void FillListeners (std::vector< ShowTableListener > *listeners) const
 
uint64_t enqueue_count () const
 
void incr_enqueue_count ()
 
void reset_enqueue_count ()
 
uint64_t input_count () const
 
void incr_input_count ()
 
void reset_input_count ()
 
uint64_t notify_count () const
 
void incr_notify_count ()
 
void reset_notify_count ()
 
bool HasWalkers () const
 
uint64_t walker_count () const
 
void incr_walker_count ()
 
uint64_t decr_walker_count ()
 
uint64_t walk_request_count () const
 
uint64_t walk_complete_count () const
 
uint64_t walk_cancel_count () const
 
uint64_t walk_again_count () const
 
uint64_t walk_count () const
 
void incr_walk_request_count ()
 
void incr_walk_complete_count ()
 
void incr_walk_cancel_count ()
 
void incr_walk_again_count ()
 
void incr_walk_count ()
 

Static Public Attributes

static const int kInvalidId = -1
 

Private Attributes

DBdb_
 
std::string name_
 
std::unique_ptr< ListenerInfoinfo_
 
uint64_t enqueue_count_
 
uint64_t input_count_
 
uint64_t notify_count_
 
tbb::atomic< uint64_t > walker_count_
 
tbb::atomic< uint64_t > walk_count_
 
tbb::atomic< uint64_t > walk_request_count_
 
tbb::atomic< uint64_t > walk_complete_count_
 
tbb::atomic< uint64_t > walk_cancel_count_
 
tbb::atomic< uint64_t > walk_again_count_
 

Detailed Description

Definition at line 59 of file db_table.h.

Member Typedef Documentation

◆ ChangeCallback

typedef boost::function<void(DBTablePartBase *, DBEntryBase *)> DBTableBase::ChangeCallback

Definition at line 61 of file db_table.h.

◆ ListenerId

Definition at line 62 of file db_table.h.

Constructor & Destructor Documentation

◆ DBTableBase()

DBTableBase::DBTableBase ( DB db,
const std::string &  name 
)

Definition at line 167 of file db_table.cc.

◆ ~DBTableBase()

DBTableBase::~DBTableBase ( )
virtual

Definition at line 178 of file db_table.cc.

Member Function Documentation

◆ AddRemoveCallback()

virtual void DBTableBase::AddRemoveCallback ( const DBEntryBase entry,
bool  add 
) const
inlinevirtual

Reimplemented in RTargetTable, and EvpnTable.

Definition at line 84 of file db_table.h.

◆ AddToDBStateCount()

void DBTableBase::AddToDBStateCount ( ListenerId  listener,
int  count 
)

Definition at line 212 of file db_table.cc.

◆ Change()

virtual void DBTableBase::Change ( DBEntryBase )
pure virtual

Implemented in DBTable.

◆ database() [1/2]

DB* DBTableBase::database ( )
inline

Definition at line 107 of file db_table.h.

◆ database() [2/2]

const DB* DBTableBase::database ( ) const
inline

Definition at line 108 of file db_table.h.

◆ decr_walker_count()

uint64_t DBTableBase::decr_walker_count ( )
inline

Definition at line 131 of file db_table.h.

◆ empty()

bool DBTableBase::empty ( ) const
inline

Definition at line 101 of file db_table.h.

Here is the call graph for this function:

◆ Enqueue()

bool DBTableBase::Enqueue ( DBRequest req)

Definition at line 194 of file db_table.cc.

Here is the call graph for this function:

◆ enqueue_count()

uint64_t DBTableBase::enqueue_count ( ) const
inline

Definition at line 116 of file db_table.h.

◆ EnqueueRemove()

void DBTableBase::EnqueueRemove ( DBEntryBase db_entry)

Definition at line 201 of file db_table.cc.

Here is the call graph for this function:

◆ FillListeners()

void DBTableBase::FillListeners ( std::vector< ShowTableListener > *  listeners) const

Definition at line 242 of file db_table.cc.

◆ GetDBStateCount()

uint64_t DBTableBase::GetDBStateCount ( ListenerId  listener)

Definition at line 216 of file db_table.cc.

◆ GetListenerCount()

size_t DBTableBase::GetListenerCount ( ) const

Definition at line 238 of file db_table.cc.

◆ GetTablePartition() [1/3]

virtual DBTablePartBase* DBTableBase::GetTablePartition ( const DBEntryBase entry)
pure virtual

Implemented in DBTable.

◆ GetTablePartition() [2/3]

virtual DBTablePartBase* DBTableBase::GetTablePartition ( const DBRequestKey key)
pure virtual

Implemented in DBTable.

◆ GetTablePartition() [3/3]

virtual DBTablePartBase* DBTableBase::GetTablePartition ( const int  index)
pure virtual

Implemented in DBTable.

◆ HasListeners()

bool DBTableBase::HasListeners ( ) const

Definition at line 234 of file db_table.cc.

◆ HasWalkers()

bool DBTableBase::HasWalkers ( ) const
inline

Definition at line 128 of file db_table.h.

◆ incr_enqueue_count()

void DBTableBase::incr_enqueue_count ( )
inline

Definition at line 117 of file db_table.h.

◆ incr_input_count()

void DBTableBase::incr_input_count ( )
inline

Definition at line 121 of file db_table.h.

◆ incr_notify_count()

void DBTableBase::incr_notify_count ( )
inline

Definition at line 125 of file db_table.h.

◆ incr_walk_again_count()

void DBTableBase::incr_walk_again_count ( )
inline

Definition at line 141 of file db_table.h.

◆ incr_walk_cancel_count()

void DBTableBase::incr_walk_cancel_count ( )
inline

Definition at line 140 of file db_table.h.

◆ incr_walk_complete_count()

void DBTableBase::incr_walk_complete_count ( )
inline

Definition at line 139 of file db_table.h.

◆ incr_walk_count()

void DBTableBase::incr_walk_count ( )
inline

Definition at line 142 of file db_table.h.

◆ incr_walk_request_count()

void DBTableBase::incr_walk_request_count ( )
inline

Definition at line 138 of file db_table.h.

◆ incr_walker_count()

void DBTableBase::incr_walker_count ( )
inline

Definition at line 130 of file db_table.h.

◆ input_count()

uint64_t DBTableBase::input_count ( ) const
inline

Definition at line 120 of file db_table.h.

◆ MayDelete()

bool DBTableBase::MayDelete ( ) const
virtual

Reimplemented in BgpTable.

Definition at line 220 of file db_table.cc.

Here is the call graph for this function:

◆ name()

const std::string& DBTableBase::name ( ) const
inline

Definition at line 110 of file db_table.h.

◆ notify_count()

uint64_t DBTableBase::notify_count ( ) const
inline

Definition at line 124 of file db_table.h.

◆ Register()

DBTableBase::ListenerId DBTableBase::Register ( ChangeCallback  callback,
const std::string &  name = "unspecified" 
)

Definition at line 181 of file db_table.cc.

Here is the call graph for this function:

◆ reset_enqueue_count()

void DBTableBase::reset_enqueue_count ( )
inline

Definition at line 118 of file db_table.h.

◆ reset_input_count()

void DBTableBase::reset_input_count ( )
inline

Definition at line 122 of file db_table.h.

◆ reset_notify_count()

void DBTableBase::reset_notify_count ( )
inline

Definition at line 126 of file db_table.h.

◆ RetryDelete()

virtual void DBTableBase::RetryDelete ( )
inlinevirtual

Reimplemented in AgentRouteTable, and BgpTable.

Definition at line 104 of file db_table.h.

◆ RunNotify()

void DBTableBase::RunNotify ( DBTablePartBase tpart,
DBEntryBase entry 
)

Definition at line 207 of file db_table.cc.

◆ Size()

virtual size_t DBTableBase::Size ( ) const
inlinevirtual

Reimplemented in DBTable.

Definition at line 100 of file db_table.h.

◆ Unregister()

void DBTableBase::Unregister ( ListenerId  listener)

Definition at line 186 of file db_table.cc.

Here is the call graph for this function:

◆ walk_again_count()

uint64_t DBTableBase::walk_again_count ( ) const
inline

Definition at line 136 of file db_table.h.

◆ walk_cancel_count()

uint64_t DBTableBase::walk_cancel_count ( ) const
inline

Definition at line 135 of file db_table.h.

◆ walk_complete_count()

uint64_t DBTableBase::walk_complete_count ( ) const
inline

Definition at line 134 of file db_table.h.

◆ walk_count()

uint64_t DBTableBase::walk_count ( ) const
inline

Definition at line 137 of file db_table.h.

◆ walk_request_count()

uint64_t DBTableBase::walk_request_count ( ) const
inline

Definition at line 133 of file db_table.h.

◆ walker_count()

uint64_t DBTableBase::walker_count ( ) const
inline

Definition at line 129 of file db_table.h.

Member Data Documentation

◆ db_

DB* DBTableBase::db_
private

Definition at line 146 of file db_table.h.

◆ enqueue_count_

uint64_t DBTableBase::enqueue_count_
private

Definition at line 149 of file db_table.h.

◆ info_

std::unique_ptr<ListenerInfo> DBTableBase::info_
private

Definition at line 148 of file db_table.h.

◆ input_count_

uint64_t DBTableBase::input_count_
private

Definition at line 150 of file db_table.h.

◆ kInvalidId

const int DBTableBase::kInvalidId = -1
static

Definition at line 64 of file db_table.h.

◆ name_

std::string DBTableBase::name_
private

Definition at line 147 of file db_table.h.

◆ notify_count_

uint64_t DBTableBase::notify_count_
private

Definition at line 151 of file db_table.h.

◆ walk_again_count_

tbb::atomic<uint64_t> DBTableBase::walk_again_count_
private

Definition at line 157 of file db_table.h.

◆ walk_cancel_count_

tbb::atomic<uint64_t> DBTableBase::walk_cancel_count_
private

Definition at line 156 of file db_table.h.

◆ walk_complete_count_

tbb::atomic<uint64_t> DBTableBase::walk_complete_count_
private

Definition at line 155 of file db_table.h.

◆ walk_count_

tbb::atomic<uint64_t> DBTableBase::walk_count_
private

Definition at line 153 of file db_table.h.

◆ walk_request_count_

tbb::atomic<uint64_t> DBTableBase::walk_request_count_
private

Definition at line 154 of file db_table.h.

◆ walker_count_

tbb::atomic<uint64_t> DBTableBase::walker_count_
private

Definition at line 152 of file db_table.h.


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