5 #ifndef AGENT_OPER_IFMAP_DEPENDENCY_MANAGER_H__
6 #define AGENT_OPER_IFMAP_DEPENDENCY_MANAGER_H__
9 #include <boost/function.hpp>
10 #include <boost/intrusive_ptr.hpp>
11 #include <boost/uuid/uuid.hpp>
12 #include <boost/uuid/nil_generator.hpp>
25 class IFMapDependencyManagerTest;
95 Link(
const std::string &edge,
const std::string &vertex,
bool interest):
102 typedef std::vector<Link>
Path;
175 typedef std::map<std::string, DBTable::ListenerId>
TableMap;
176 typedef std::map<std::string, ChangeEventHandler>
EventMap;
boost::uuids::uuid uuid()
bool IsRegistered(const IFMapNode *node)
void NodeObserver(DBTablePartBase *root, DBEntryBase *db_entry)
void Unregister(const std::string &type)
void PropogateNodeChange(IFMapNode *node)
void SetObject(IFMapNode *node, DBEntry *entry)
void LinkObserver(DBTablePartBase *root, DBEntryBase *db_entry)
Link(const std::string &edge, const std::string &vertex, bool interest)
IFMapNodeState * IFMapNodeGet(IFMapNode *node)
void set_uuid(const boost::uuids::uuid &u)
void Register(const std::string &type, ChangeEventHandler handler)
bool oper_db_request_enqueued() const
void InitializeDependencyRules(Agent *agent)
friend void intrusive_ptr_add_ref(IFMapNodeState *state)
void IFMapNodeReset(IFMapNode *node)
void RegisterReactionMap(const char *node_name, const IFMapDependencyTracker::ReactionMap &react)
friend void intrusive_ptr_release(IFMapNodeState *state)
void ChangeListAdd(IFMapNode *node)
IFMapDependencyManager(DB *database, DBGraph *graph)
void AddDependencyPath(const std::string &node, Path path)
std::unique_ptr< IFMapDependencyTracker > tracker_
friend void intrusive_ptr_add_ref(IFMapNodeState *state)
IFMapDependencyManager * manager_
void set_object(DBEntry *object)
std::unique_ptr< TaskTrigger > trigger_
void SetRequestEnqueued(IFMapNode *node, bool oper_db_request_enqueued)
void set_notify(bool flag)
std::map< std::string, ChangeEventHandler > EventMap
bool IsNodeIdentifiedByUuid(const IFMapNode *node)
IFMapNodePtr SetState(IFMapNode *node)
friend void intrusive_ptr_release(IFMapNodeState *state)
std::vector< IFMapNodePtr > ChangeList
bool oper_db_request_enqueued_
std::map< std::string, DBTable::ListenerId > TableMap
boost::intrusive_ptr< IFMapNodeState > IFMapNodePtr
DBEntry * GetObject(IFMapNode *node)
void PropogateNodeAndLinkChange(IFMapNode *node)
void SetNotify(IFMapNode *node, bool notfiy_flag)
void set_oper_db_request_enqueued(bool oper_db_request_enqueued)
std::map< std::string, PropagateList > ReactionMap
void Initialize(Agent *agent)
IFMapNodeState(IFMapDependencyManager *manager, IFMapNode *node)
boost::function< void(IFMapNode *, DBEntry *)> ChangeEventHandler
IFMapDependencyTracker * tracker() const
virtual ~IFMapDependencyManager()