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

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

Definition at line 61 of file db_table.h.

Definition at line 62 of file db_table.h.

Constructor & Destructor Documentation

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

Definition at line 167 of file db_table.cc.

DBTableBase::~DBTableBase ( )
virtual

Definition at line 178 of file db_table.cc.

Member Function Documentation

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.

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

Definition at line 212 of file db_table.cc.

virtual void DBTableBase::Change ( DBEntryBase )
pure virtual

Implemented in DBTable.

DB* DBTableBase::database ( )
inline

Definition at line 107 of file db_table.h.

const DB* DBTableBase::database ( ) const
inline

Definition at line 108 of file db_table.h.

uint64_t DBTableBase::decr_walker_count ( )
inline

Definition at line 131 of file db_table.h.

bool DBTableBase::empty ( ) const
inline

Definition at line 101 of file db_table.h.

Here is the call graph for this function:

bool DBTableBase::Enqueue ( DBRequest req)

Definition at line 194 of file db_table.cc.

Here is the call graph for this function:

uint64_t DBTableBase::enqueue_count ( ) const
inline

Definition at line 116 of file db_table.h.

void DBTableBase::EnqueueRemove ( DBEntryBase db_entry)

Definition at line 201 of file db_table.cc.

Here is the call graph for this function:

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

Definition at line 242 of file db_table.cc.

uint64_t DBTableBase::GetDBStateCount ( ListenerId  listener)

Definition at line 216 of file db_table.cc.

size_t DBTableBase::GetListenerCount ( ) const

Definition at line 238 of file db_table.cc.

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

Implemented in DBTable.

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

Implemented in DBTable.

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

Implemented in DBTable.

bool DBTableBase::HasListeners ( ) const

Definition at line 234 of file db_table.cc.

bool DBTableBase::HasWalkers ( ) const
inline

Definition at line 128 of file db_table.h.

void DBTableBase::incr_enqueue_count ( )
inline

Definition at line 117 of file db_table.h.

void DBTableBase::incr_input_count ( )
inline

Definition at line 121 of file db_table.h.

void DBTableBase::incr_notify_count ( )
inline

Definition at line 125 of file db_table.h.

void DBTableBase::incr_walk_again_count ( )
inline

Definition at line 141 of file db_table.h.

void DBTableBase::incr_walk_cancel_count ( )
inline

Definition at line 140 of file db_table.h.

void DBTableBase::incr_walk_complete_count ( )
inline

Definition at line 139 of file db_table.h.

void DBTableBase::incr_walk_count ( )
inline

Definition at line 142 of file db_table.h.

void DBTableBase::incr_walk_request_count ( )
inline

Definition at line 138 of file db_table.h.

void DBTableBase::incr_walker_count ( )
inline

Definition at line 130 of file db_table.h.

uint64_t DBTableBase::input_count ( ) const
inline

Definition at line 120 of file db_table.h.

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:

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

Definition at line 110 of file db_table.h.

uint64_t DBTableBase::notify_count ( ) const
inline

Definition at line 124 of file db_table.h.

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

Definition at line 181 of file db_table.cc.

void DBTableBase::reset_enqueue_count ( )
inline

Definition at line 118 of file db_table.h.

void DBTableBase::reset_input_count ( )
inline

Definition at line 122 of file db_table.h.

void DBTableBase::reset_notify_count ( )
inline

Definition at line 126 of file db_table.h.

virtual void DBTableBase::RetryDelete ( )
inlinevirtual

Reimplemented in AgentRouteTable, and BgpTable.

Definition at line 104 of file db_table.h.

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

Definition at line 207 of file db_table.cc.

virtual size_t DBTableBase::Size ( ) const
inlinevirtual

Reimplemented in DBTable.

Definition at line 100 of file db_table.h.

void DBTableBase::Unregister ( ListenerId  listener)

Definition at line 186 of file db_table.cc.

Here is the call graph for this function:

uint64_t DBTableBase::walk_again_count ( ) const
inline

Definition at line 136 of file db_table.h.

uint64_t DBTableBase::walk_cancel_count ( ) const
inline

Definition at line 135 of file db_table.h.

uint64_t DBTableBase::walk_complete_count ( ) const
inline

Definition at line 134 of file db_table.h.

uint64_t DBTableBase::walk_count ( ) const
inline

Definition at line 137 of file db_table.h.

uint64_t DBTableBase::walk_request_count ( ) const
inline

Definition at line 133 of file db_table.h.

uint64_t DBTableBase::walker_count ( ) const
inline

Definition at line 129 of file db_table.h.

Member Data Documentation

DB* DBTableBase::db_
private

Definition at line 145 of file db_table.h.

uint64_t DBTableBase::enqueue_count_
private

Definition at line 149 of file db_table.h.

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

Definition at line 148 of file db_table.h.

uint64_t DBTableBase::input_count_
private

Definition at line 150 of file db_table.h.

const int DBTableBase::kInvalidId = -1
static

Definition at line 64 of file db_table.h.

std::string DBTableBase::name_
private

Definition at line 147 of file db_table.h.

uint64_t DBTableBase::notify_count_
private

Definition at line 151 of file db_table.h.

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

Definition at line 157 of file db_table.h.

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

Definition at line 156 of file db_table.h.

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

Definition at line 155 of file db_table.h.

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

Definition at line 153 of file db_table.h.

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

Definition at line 154 of file db_table.h.

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: