OpenSDN source code
IFMapGraphWalker Class Reference

#include <ifmap_graph_walker.h>

Collaboration diagram for IFMapGraphWalker:

Public Types

typedef std::set< IFMapState * > ReachableNodesSet
 
typedef ReachableNodesSet::const_iterator Rns_citer
 
typedef std::vector< ReachableNodesSet * > ReachableNodesTracker
 

Public Member Functions

 IFMapGraphWalker (DBGraph *graph, IFMapExporter *exporter)
 
 ~IFMapGraphWalker ()
 
void LinkAdd (IFMapLink *link, IFMapNode *lnode, const BitSet &lhs, IFMapNode *rnode, const BitSet &rhs)
 
void LinkRemove (const BitSet &bset)
 
bool FilterNeighbor (IFMapNode *lnode, IFMapLink *link)
 
const IFMapTypenameWhiteListget_traversal_white_list () const
 
void ResetLinkDeleteClients (const BitSet &bset)
 

Private Member Functions

void ProcessLinkAdd (IFMapNode *lnode, IFMapNode *rnode, const BitSet &bset)
 
void JoinVertex (DBGraphVertex *vertex, const BitSet &bset)
 
void NotifyEdge (DBGraphEdge *edge, const BitSet &bset)
 
void RecomputeInterest (DBGraphVertex *vertex, int bit)
 
void CleanupInterest (int client_index, IFMapNode *node, IFMapNodeState *state)
 
void AddNodesToWhitelist ()
 
void AddLinksToWhitelist ()
 
bool LinkDeleteWalk ()
 
void LinkDeleteWalkBatchEnd (const BitSet &done_set)
 
void OrLinkDeleteClients (const BitSet &bset)
 
void AddNewReachableNodesTracker (int client_index)
 
void DeleteNewReachableNodesTracker (int client_index)
 
void UpdateNewReachableNodesTracker (int client_index, IFMapState *state)
 
void OldReachableNodesCleanupInterest (int client_index)
 
void NewReachableNodesCleanupInterest (int client_index)
 

Private Attributes

DBGraphgraph_
 
IFMapExporterexporter_
 
boost::scoped_ptr< TaskTriggerlink_delete_walk_trigger_
 
std::unique_ptr< IFMapTypenameWhiteListtraversal_white_list_
 
BitSet link_delete_clients_
 
size_t walk_client_index_
 
ReachableNodesTracker new_reachable_nodes_tracker_
 

Static Private Attributes

static const int kMaxLinkDeleteWalks = 1
 

Detailed Description

Definition at line 23 of file ifmap_graph_walker.h.

Member Typedef Documentation

◆ ReachableNodesSet

Definition at line 25 of file ifmap_graph_walker.h.

◆ ReachableNodesTracker

Definition at line 27 of file ifmap_graph_walker.h.

◆ Rns_citer

typedef ReachableNodesSet::const_iterator IFMapGraphWalker::Rns_citer

Definition at line 26 of file ifmap_graph_walker.h.

Constructor & Destructor Documentation

◆ IFMapGraphWalker()

IFMapGraphWalker::IFMapGraphWalker ( DBGraph graph,
IFMapExporter exporter 
)

Definition at line 72 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ ~IFMapGraphWalker()

IFMapGraphWalker::~IFMapGraphWalker ( )

Definition at line 83 of file ifmap_graph_walker.cc.

Member Function Documentation

◆ AddLinksToWhitelist()

void IFMapGraphWalker::AddLinksToWhitelist ( )
private

◆ AddNewReachableNodesTracker()

void IFMapGraphWalker::AddNewReachableNodesTracker ( int  client_index)
private

Definition at line 313 of file ifmap_graph_walker.cc.

◆ AddNodesToWhitelist()

void IFMapGraphWalker::AddNodesToWhitelist ( )
private

Definition at line 349 of file ifmap_graph_walker.cc.

◆ CleanupInterest()

void IFMapGraphWalker::CleanupInterest ( int  client_index,
IFMapNode node,
IFMapNodeState state 
)
private

Definition at line 221 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ DeleteNewReachableNodesTracker()

void IFMapGraphWalker::DeleteNewReachableNodesTracker ( int  client_index)
private

Definition at line 322 of file ifmap_graph_walker.cc.

◆ FilterNeighbor()

bool IFMapGraphWalker::FilterNeighbor ( IFMapNode lnode,
IFMapLink link 
)

Definition at line 140 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ get_traversal_white_list()

const IFMapTypenameWhiteList & IFMapGraphWalker::get_traversal_white_list ( ) const

Definition at line 341 of file ifmap_graph_walker.cc.

◆ JoinVertex()

void IFMapGraphWalker::JoinVertex ( DBGraphVertex vertex,
const BitSet bset 
)
private

Definition at line 91 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ LinkAdd()

void IFMapGraphWalker::LinkAdd ( IFMapLink link,
IFMapNode lnode,
const BitSet lhs,
IFMapNode rnode,
const BitSet rhs 
)

Definition at line 109 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ LinkDeleteWalk()

bool IFMapGraphWalker::LinkDeleteWalk ( )
private

Definition at line 158 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ LinkDeleteWalkBatchEnd()

void IFMapGraphWalker::LinkDeleteWalkBatchEnd ( const BitSet done_set)
private

Definition at line 302 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ LinkRemove()

void IFMapGraphWalker::LinkRemove ( const BitSet bset)

Definition at line 133 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ NewReachableNodesCleanupInterest()

void IFMapGraphWalker::NewReachableNodesCleanupInterest ( int  client_index)
private

Definition at line 285 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ NotifyEdge()

void IFMapGraphWalker::NotifyEdge ( DBGraphEdge edge,
const BitSet bset 
)
private

Definition at line 86 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ OldReachableNodesCleanupInterest()

void IFMapGraphWalker::OldReachableNodesCleanupInterest ( int  client_index)
private

Definition at line 255 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ OrLinkDeleteClients()

void IFMapGraphWalker::OrLinkDeleteClients ( const BitSet bset)
private

Definition at line 213 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ ProcessLinkAdd()

void IFMapGraphWalker::ProcessLinkAdd ( IFMapNode lnode,
IFMapNode rnode,
const BitSet bset 
)
private

Definition at line 100 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ RecomputeInterest()

void IFMapGraphWalker::RecomputeInterest ( DBGraphVertex vertex,
int  bit 
)
private

Definition at line 151 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ ResetLinkDeleteClients()

void IFMapGraphWalker::ResetLinkDeleteClients ( const BitSet bset)

Definition at line 217 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

◆ UpdateNewReachableNodesTracker()

void IFMapGraphWalker::UpdateNewReachableNodesTracker ( int  client_index,
IFMapState state 
)
private

Definition at line 330 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

Member Data Documentation

◆ exporter_

IFMapExporter* IFMapGraphWalker::exporter_
private

Definition at line 64 of file ifmap_graph_walker.h.

◆ graph_

DBGraph* IFMapGraphWalker::graph_
private

Definition at line 63 of file ifmap_graph_walker.h.

◆ kMaxLinkDeleteWalks

const int IFMapGraphWalker::kMaxLinkDeleteWalks = 1
staticprivate

Definition at line 44 of file ifmap_graph_walker.h.

◆ link_delete_clients_

BitSet IFMapGraphWalker::link_delete_clients_
private

Definition at line 67 of file ifmap_graph_walker.h.

◆ link_delete_walk_trigger_

boost::scoped_ptr<TaskTrigger> IFMapGraphWalker::link_delete_walk_trigger_
private

Definition at line 65 of file ifmap_graph_walker.h.

◆ new_reachable_nodes_tracker_

ReachableNodesTracker IFMapGraphWalker::new_reachable_nodes_tracker_
private

Definition at line 69 of file ifmap_graph_walker.h.

◆ traversal_white_list_

std::unique_ptr<IFMapTypenameWhiteList> IFMapGraphWalker::traversal_white_list_
private

Definition at line 66 of file ifmap_graph_walker.h.

◆ walk_client_index_

size_t IFMapGraphWalker::walk_client_index_
private

Definition at line 68 of file ifmap_graph_walker.h.


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