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

#include <ifmap_dependency_tracker.h>

Collaboration diagram for IFMapDependencyTracker:

Classes

struct  EdgeDescriptor
 

Public Types

typedef std::list< EdgeDescriptorEdgeDescriptorList
 
typedef std::list< std::pair
< std::string, std::string > > 
NodeList
 
typedef std::set< std::string > PropagateList
 
typedef std::map< std::string,
PropagateList
ReactionMap
 
typedef std::map< std::string,
ReactionMap
NodeEventPolicy
 
typedef boost::function< void(IFMapNode
*node)> 
ChangeObserver
 

Public Member Functions

 IFMapDependencyTracker (DB *db, DBGraph *graph, ChangeObserver observer)
 
NodeEventPolicypolicy_map ()
 
void NodeEvent (IFMapNode *node)
 
void NodeEvent (IFMapNode *node, bool add_node_event)
 
bool LinkEvent (const std::string metadata, IFMapNode *left, IFMapNode *right)
 
void PropagateChanges ()
 
void Clear ()
 
const NodeListnode_list () const
 
const EdgeDescriptorListedge_list () const
 

Private Types

typedef std::set< std::pair
< IFMapNode *, std::string > > 
InEdgeSet
 

Private Member Functions

const PropagateListGetPropagateList (const std::string &type, const std::string &metadata) const
 
bool IsInterestingEvent (const IFMapNode *node, const std::string &metadata) const
 
void PropagateNode (IFMapNode *node, InEdgeSet *in_edges)
 
void PropagateEdge (IFMapNode *node, const std::string &metadata, InEdgeSet *in_edges)
 
void AddChangeEvent (IFMapNode *node)
 

Private Attributes

DBdatabase_
 
DBGraphgraph_
 
ChangeObserver observer_
 
NodeEventPolicy policy_
 
EdgeDescriptorList edge_list_
 
NodeList node_list_
 

Detailed Description

Definition at line 76 of file ifmap_dependency_tracker.h.

Member Typedef Documentation

typedef boost::function<void(IFMapNode *node)> IFMapDependencyTracker::ChangeObserver

Definition at line 95 of file ifmap_dependency_tracker.h.

typedef std::set<std::pair<IFMapNode *, std::string> > IFMapDependencyTracker::InEdgeSet
private

Definition at line 111 of file ifmap_dependency_tracker.h.

typedef std::map<std::string, ReactionMap> IFMapDependencyTracker::NodeEventPolicy

Definition at line 93 of file ifmap_dependency_tracker.h.

typedef std::list<std::pair<std::string, std::string> > IFMapDependencyTracker::NodeList

Definition at line 88 of file ifmap_dependency_tracker.h.

typedef std::set<std::string> IFMapDependencyTracker::PropagateList

Definition at line 91 of file ifmap_dependency_tracker.h.

typedef std::map<std::string, PropagateList> IFMapDependencyTracker::ReactionMap

Definition at line 92 of file ifmap_dependency_tracker.h.

Constructor & Destructor Documentation

IFMapDependencyTracker::IFMapDependencyTracker ( DB db,
DBGraph graph,
ChangeObserver  observer 
)

Definition at line 17 of file ifmap_dependency_tracker.cc.

Member Function Documentation

void IFMapDependencyTracker::AddChangeEvent ( IFMapNode node)
private

Definition at line 225 of file ifmap_dependency_tracker.cc.

void IFMapDependencyTracker::Clear ( )

Definition at line 118 of file ifmap_dependency_tracker.cc.

const EdgeDescriptorList& IFMapDependencyTracker::edge_list ( ) const
inline

Definition at line 108 of file ifmap_dependency_tracker.h.

const IFMapDependencyTracker::PropagateList * IFMapDependencyTracker::GetPropagateList ( const std::string &  type,
const std::string &  metadata 
) const
private

Definition at line 127 of file ifmap_dependency_tracker.cc.

bool IFMapDependencyTracker::IsInterestingEvent ( const IFMapNode node,
const std::string &  metadata 
) const
private

Definition at line 146 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

bool IFMapDependencyTracker::LinkEvent ( const std::string  metadata,
IFMapNode left,
IFMapNode right 
)

Definition at line 55 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

const NodeList& IFMapDependencyTracker::node_list ( ) const
inline

Definition at line 107 of file ifmap_dependency_tracker.h.

void IFMapDependencyTracker::NodeEvent ( IFMapNode node)

Definition at line 45 of file ifmap_dependency_tracker.cc.

void IFMapDependencyTracker::NodeEvent ( IFMapNode node,
bool  add_node_event 
)

Definition at line 29 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

NodeEventPolicy* IFMapDependencyTracker::policy_map ( )
inline

Definition at line 98 of file ifmap_dependency_tracker.h.

void IFMapDependencyTracker::PropagateChanges ( )

Definition at line 80 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

void IFMapDependencyTracker::PropagateEdge ( IFMapNode node,
const std::string &  metadata,
InEdgeSet in_edges 
)
private

Definition at line 183 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

void IFMapDependencyTracker::PropagateNode ( IFMapNode node,
InEdgeSet in_edges 
)
private

Definition at line 159 of file ifmap_dependency_tracker.cc.

Here is the call graph for this function:

Member Data Documentation

DB* IFMapDependencyTracker::database_
private

Definition at line 123 of file ifmap_dependency_tracker.h.

EdgeDescriptorList IFMapDependencyTracker::edge_list_
private

Definition at line 127 of file ifmap_dependency_tracker.h.

DBGraph* IFMapDependencyTracker::graph_
private

Definition at line 124 of file ifmap_dependency_tracker.h.

NodeList IFMapDependencyTracker::node_list_
private

Definition at line 128 of file ifmap_dependency_tracker.h.

ChangeObserver IFMapDependencyTracker::observer_
private

Definition at line 125 of file ifmap_dependency_tracker.h.

NodeEventPolicy IFMapDependencyTracker::policy_
private

Definition at line 126 of file ifmap_dependency_tracker.h.


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