4 #ifndef IFMAP_IFMAP_DEPENDENCY_TRACKER_H__
5 #define IFMAP_IFMAP_DEPENDENCY_TRACKER_H__
13 #include <boost/function.hpp>
80 const std::string &name)
88 typedef std::list<std::pair<std::string, std::string> >
NodeList;
102 bool LinkEvent(
const std::string metadata,
111 typedef std::set<std::pair<IFMapNode *, std::string> >
InEdgeSet;
114 const std::string &metadata)
const;
116 const std::string &metadata)
const;
bool IsInterestingEvent(const IFMapNode *node, const std::string &metadata) const
const EdgeDescriptorList & edge_list() const
boost::function< void(IFMapNode *node)> ChangeObserver
const NodeList & node_list() const
std::set< std::string > PropagateList
std::list< std::pair< std::string, std::string > > NodeList
std::map< std::string, ReactionMap > NodeEventPolicy
void PropagateEdge(IFMapNode *node, const std::string &metadata, InEdgeSet *in_edges)
EdgeDescriptor(const std::string &meta, const std::string &type, const std::string &name)
NodeEventPolicy * policy_map()
const PropagateList * GetPropagateList(const std::string &type, const std::string &metadata) const
void AddChangeEvent(IFMapNode *node)
EdgeDescriptorList edge_list_
std::set< std::pair< IFMapNode *, std::string > > InEdgeSet
void PropagateNode(IFMapNode *node, InEdgeSet *in_edges)
std::map< std::string, PropagateList > ReactionMap
bool LinkEvent(const std::string metadata, IFMapNode *left, IFMapNode *right)
std::list< EdgeDescriptor > EdgeDescriptorList
IFMapDependencyTracker(DB *db, DBGraph *graph, ChangeObserver observer)
void NodeEvent(IFMapNode *node)