OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AgentDBTable Class Reference

#include <agent_db.h>

Inheritance diagram for AgentDBTable:
Collaboration diagram for AgentDBTable:

Public Member Functions

 AgentDBTable (DB *db, const std::string &name)
 
 AgentDBTable (DB *db, const std::string &name, bool del_on_zero_refcount)
 
virtual ~AgentDBTable ()
 
virtual int PartitionCount () const
 
virtual void Input (DBTablePartition *root, DBClient *client, DBRequest *req)
 
virtual DBEntryCfgAdd (DBRequest *req)
 
virtual bool Resync (DBEntry *entry, const DBRequest *req)
 
virtual void Clear ()
 
virtual bool IFNodeToReq (IFMapNode *node, DBRequest &req, const boost::uuids::uuid &uuid)
 
virtual bool IFLinkToReq (IFMapLink *link, IFMapNode *node, const std::string &peer_name, IFMapNode *peer, DBRequest &req)
 
virtual bool IFNodeToUuid (IFMapNode *node, boost::uuids::uuid &id)
 
virtual DBTablePartitionAllocPartition (int index)
 
virtual void OnZeroRefcount (AgentDBEntry *e)
 
virtual void NotifyEntry (DBEntryBase *entry)
 
virtual AgentSandeshPtr GetAgentSandesh (const AgentSandeshArguments *args, const std::string &context)
 
void Notify (DBTablePartBase *partition, DBEntryBase *entry)
 
DBTableBase::ListenerId GetRefListenerId () const
 
AgentDBEntryFindActiveEntry (const DBEntry *key)
 
AgentDBEntryFindActiveEntryNoLock (const DBEntry *key)
 
AgentDBEntryFindActiveEntry (const DBRequestKey *key)
 
AgentDBEntryFindActiveEntryNoLock (const DBRequestKey *key)
 
AgentDBEntryFind (const DBEntry *key, bool ret_del)
 
AgentDBEntryFind (const DBRequestKey *key, bool ret_del)
 
virtual bool CanNotify (IFMapNode *dbe)
 
virtual void Process (DBRequest &req)
 
virtual bool ProcessConfig (IFMapNode *node, DBRequest &req, const boost::uuids::uuid &u)
 
void set_agent (Agent *agent)
 
Agentagent () const
 
void Flush ()
 
void reset_flush_walk_ref ()
 
SandeshTraceBufferPtr GetOperDBTraceBuf () const
 
- Public Member Functions inherited from DBTable
 DBTable (DB *db, const std::string &name)
 
virtual ~DBTable ()
 
void Init ()
 
virtual std::unique_ptr< DBEntryAllocEntry (const DBRequestKey *key) const =0
 
virtual size_t Hash (const DBEntry *entry) const
 
virtual size_t Hash (const DBRequestKey *key) const
 
virtual DBEntryAdd (const DBRequest *req)
 
virtual bool OnChange (DBEntry *entry, const DBRequest *req)
 
virtual bool Delete (DBEntry *entry, const DBRequest *req)
 
void NotifyAllEntries ()
 
DBEntryFind (const DBEntry *entry)
 
const DBEntryFind (const DBEntry *entry) const
 
DBEntryFind (const DBRequestKey *key, int id=-1)
 
const DBEntryFind (const DBRequestKey *key, int id=-1) const
 
DBEntryFindNoLock (const DBEntry *entry)
 
DBEntryFindNoLock (const DBRequestKey *key)
 
virtual DBTablePartBaseGetTablePartition (const DBRequestKey *key)
 
virtual const DBTablePartBaseGetTablePartition (const DBRequestKey *key) const
 
virtual DBTablePartBaseGetTablePartition (const DBEntryBase *entry)
 
virtual const DBTablePartBaseGetTablePartition (const DBEntryBase *entry) const
 
virtual DBTablePartBaseGetTablePartition (const int index)
 
virtual const DBTablePartBaseGetTablePartition (const int index) const
 
virtual void Change (DBEntryBase *entry)
 
virtual size_t Size () const
 
DBTableWalkRef AllocWalker (WalkFn walk_fn, WalkCompleteFn walk_complete)
 
void ReleaseWalker (DBTableWalkRef &walk)
 
void WalkTable (DBTableWalkRef walk)
 
void WalkAgain (DBTableWalkRef walk)
 
void SetWalkIterationToYield (int count)
 
int GetWalkIterationToYield ()
 
void SetWalkTaskId (int task_id)
 
int GetWalkerTaskId ()
 
- Public Member Functions inherited from DBTableBase
 DBTableBase (DB *db, const std::string &name)
 
virtual ~DBTableBase ()
 
bool Enqueue (DBRequest *req)
 
void EnqueueRemove (DBEntryBase *db_entry)
 
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)
 
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 kPartitionCount = 1
 
- Static Public Attributes inherited from DBTable
static const int kIterationToYield = 256
 
- Static Public Attributes inherited from DBTableBase
static const int kInvalidId = -1
 

Private Member Functions

AgentDBEntryFind (const DBEntry *key)
 
AgentDBEntryFind (const DBRequestKey *key)
 
 DISALLOW_COPY_AND_ASSIGN (AgentDBTable)
 

Private Attributes

DBTableBase::ListenerId ref_listener_id_
 
Agentagent_
 
SandeshTraceBufferPtr OperDBTraceBuf
 
DBTable::DBTableWalkRef flush_walk_ref_
 

Additional Inherited Members

- Public Types inherited from DBTable
typedef boost::intrusive_ptr
< DBTableWalk
DBTableWalkRef
 
typedef boost::function< bool(DBTablePartBase
*, DBEntryBase *)> 
WalkFn
 
typedef boost::function< void(DBTableWalkRef,
DBTableBase *)> 
WalkCompleteFn
 
- Public Types inherited from DBTableBase
typedef boost::function< void(DBTablePartBase
*, DBEntryBase *)> 
ChangeCallback
 
typedef int ListenerId
 
- Static Public Member Functions inherited from DBTable
static void DBStateClear (DBTable *table, ListenerId id)
 

Detailed Description

Definition at line 148 of file agent_db.h.

Constructor & Destructor Documentation

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

Definition at line 70 of file agent_db.cc.

Here is the call graph for this function:

AgentDBTable::AgentDBTable ( DB db,
const std::string &  name,
bool  del_on_zero_refcount 
)

Definition at line 78 of file agent_db.cc.

Here is the call graph for this function:

AgentDBTable::~AgentDBTable ( )
virtual

Definition at line 87 of file agent_db.cc.

Here is the call graph for this function:

Member Function Documentation

Agent* AgentDBTable::agent ( ) const
inline

Definition at line 213 of file agent_db.h.

virtual DBTablePartition* AgentDBTable::AllocPartition ( int  index)
inlinevirtual

Reimplemented from DBTable.

Definition at line 180 of file agent_db.h.

virtual bool AgentDBTable::CanNotify ( IFMapNode dbe)
inlinevirtual

Definition at line 202 of file agent_db.h.

virtual DBEntry* AgentDBTable::CfgAdd ( DBRequest req)
inlinevirtual

Definition at line 158 of file agent_db.h.

void AgentDBTable::Clear ( )
virtual

Reimplemented in InterfaceTable, VnTable, VrfTable, and PhysicalDeviceVnTable.

Definition at line 215 of file agent_db.cc.

Here is the call graph for this function:

AgentDBTable::DISALLOW_COPY_AND_ASSIGN ( AgentDBTable  )
private
AgentDBEntry * AgentDBTable::Find ( const DBEntry key,
bool  ret_del 
)

Definition at line 134 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::Find ( const DBRequestKey key,
bool  ret_del 
)

Definition at line 142 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::Find ( const DBEntry key)
private

Definition at line 150 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::Find ( const DBRequestKey key)
private

Definition at line 154 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::FindActiveEntry ( const DBEntry key)

Definition at line 110 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::FindActiveEntry ( const DBRequestKey key)

Definition at line 126 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::FindActiveEntryNoLock ( const DBEntry key)

Definition at line 102 of file agent_db.cc.

Here is the call graph for this function:

AgentDBEntry * AgentDBTable::FindActiveEntryNoLock ( const DBRequestKey key)

Definition at line 118 of file agent_db.cc.

Here is the call graph for this function:

void AgentDBTable::Flush ( )

Definition at line 238 of file agent_db.cc.

Here is the call graph for this function:

SandeshTraceBufferPtr AgentDBTable::GetOperDBTraceBuf ( ) const
inline

Definition at line 217 of file agent_db.h.

DBTableBase::ListenerId AgentDBTable::GetRefListenerId ( ) const
inline

Definition at line 195 of file agent_db.h.

virtual bool AgentDBTable::IFLinkToReq ( IFMapLink link,
IFMapNode node,
const std::string &  peer_name,
IFMapNode peer,
DBRequest req 
)
inlinevirtual

Definition at line 172 of file agent_db.h.

void AgentDBTable::Input ( DBTablePartition root,
DBClient client,
DBRequest req 
)
virtual

Reimplemented from DBTable.

Reimplemented in VrfTable.

Definition at line 188 of file agent_db.cc.

Here is the call graph for this function:

void AgentDBTable::Notify ( DBTablePartBase partition,
DBEntryBase entry 
)
inline

Definition at line 192 of file agent_db.h.

void AgentDBTable::NotifyEntry ( DBEntryBase entry)
virtual

Definition at line 91 of file agent_db.cc.

Here is the call graph for this function:

virtual void AgentDBTable::OnZeroRefcount ( AgentDBEntry e)
inlinevirtual

Reimplemented in NextHopTable, VrfTable, MirrorTable, VxLanTable, and MplsTable.

Definition at line 183 of file agent_db.h.

virtual int AgentDBTable::PartitionCount ( ) const
inlinevirtual

Reimplemented from DBTable.

Definition at line 155 of file agent_db.h.

void AgentDBTable::Process ( DBRequest req)
virtual

Reimplemented in NextHopTable, VxLanTable, MplsTable, and CryptTunnelTable.

Definition at line 231 of file agent_db.cc.

Here is the call graph for this function:

virtual bool AgentDBTable::ProcessConfig ( IFMapNode node,
DBRequest req,
const boost::uuids::uuid u 
)
inlinevirtual
void AgentDBTable::reset_flush_walk_ref ( )

Definition at line 98 of file agent_db.cc.

virtual bool AgentDBTable::Resync ( DBEntry entry,
const DBRequest req 
)
inlinevirtual

Reimplemented in NextHopTable, AgentOperDBTable, MirrorTable, PhysicalDeviceVnTable, and CryptTunnelTable.

Definition at line 159 of file agent_db.h.

void AgentDBTable::set_agent ( Agent agent)
inline

Definition at line 212 of file agent_db.h.

Here is the call graph for this function:

Member Data Documentation

Agent* AgentDBTable::agent_
private

Definition at line 223 of file agent_db.h.

DBTable::DBTableWalkRef AgentDBTable::flush_walk_ref_
private

Definition at line 225 of file agent_db.h.

const int AgentDBTable::kPartitionCount = 1
static

Definition at line 150 of file agent_db.h.

SandeshTraceBufferPtr AgentDBTable::OperDBTraceBuf
private

Definition at line 224 of file agent_db.h.

DBTableBase::ListenerId AgentDBTable::ref_listener_id_
private

Definition at line 222 of file agent_db.h.


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