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

Definition at line 25 of file ifmap_graph_walker.h.

Definition at line 27 of file ifmap_graph_walker.h.

typedef ReachableNodesSet::const_iterator IFMapGraphWalker::Rns_citer

Definition at line 26 of file ifmap_graph_walker.h.

Constructor & Destructor Documentation

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 ( )

Definition at line 83 of file ifmap_graph_walker.cc.

Member Function Documentation

void IFMapGraphWalker::AddLinksToWhitelist ( )
private
void IFMapGraphWalker::AddNewReachableNodesTracker ( int  client_index)
private

Definition at line 313 of file ifmap_graph_walker.cc.

void IFMapGraphWalker::AddNodesToWhitelist ( )
private

Definition at line 349 of file ifmap_graph_walker.cc.

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:

void IFMapGraphWalker::DeleteNewReachableNodesTracker ( int  client_index)
private

Definition at line 322 of file ifmap_graph_walker.cc.

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:

const IFMapTypenameWhiteList & IFMapGraphWalker::get_traversal_white_list ( ) const

Definition at line 341 of file ifmap_graph_walker.cc.

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:

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:

bool IFMapGraphWalker::LinkDeleteWalk ( )
private

Definition at line 158 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

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:

void IFMapGraphWalker::LinkRemove ( const BitSet bset)

Definition at line 133 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

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:

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:

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:

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:

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:

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:

void IFMapGraphWalker::ResetLinkDeleteClients ( const BitSet bset)

Definition at line 217 of file ifmap_graph_walker.cc.

Here is the call graph for this function:

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

IFMapExporter* IFMapGraphWalker::exporter_
private

Definition at line 64 of file ifmap_graph_walker.h.

DBGraph* IFMapGraphWalker::graph_
private

Definition at line 63 of file ifmap_graph_walker.h.

const int IFMapGraphWalker::kMaxLinkDeleteWalks = 1
staticprivate

Definition at line 44 of file ifmap_graph_walker.h.

BitSet IFMapGraphWalker::link_delete_clients_
private

Definition at line 67 of file ifmap_graph_walker.h.

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

Definition at line 65 of file ifmap_graph_walker.h.

ReachableNodesTracker IFMapGraphWalker::new_reachable_nodes_tracker_
private

Definition at line 69 of file ifmap_graph_walker.h.

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

Definition at line 66 of file ifmap_graph_walker.h.

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: