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;
std::map< std::string, DBTable::ListenerId > TableMap
void SetRequestEnqueued(IFMapNode *node, bool oper_db_request_enqueued)
std::vector< IFMapNodePtr > ChangeList
DBEntry * GetObject(IFMapNode *node)
void SetNotify(IFMapNode *node, bool notfiy_flag)
void Unregister(const std::string &type)
void InitializeDependencyRules(Agent *agent)
IFMapNodeState * IFMapNodeGet(IFMapNode *node)
void RegisterReactionMap(const char *node_name, const IFMapDependencyTracker::ReactionMap &react)
bool IsRegistered(const IFMapNode *node)
friend void intrusive_ptr_release(IFMapNodeState *state)
void AddDependencyPath(const std::string &node, Path path)
void PropogateNodeChange(IFMapNode *node)
bool IsNodeIdentifiedByUuid(const IFMapNode *node)
std::map< std::string, ChangeEventHandler > EventMap
IFMapDependencyManager(DB *database, DBGraph *graph)
boost::intrusive_ptr< IFMapNodeState > IFMapNodePtr
void ChangeListAdd(IFMapNode *node)
virtual ~IFMapDependencyManager()
IFMapNodePtr SetState(IFMapNode *node)
void PropogateNodeAndLinkChange(IFMapNode *node)
std::unique_ptr< IFMapDependencyTracker > tracker_
void Initialize(Agent *agent)
boost::function< void(IFMapNode *, DBEntry *)> ChangeEventHandler
std::unique_ptr< TaskTrigger > trigger_
void Register(const std::string &type, ChangeEventHandler handler)
IFMapDependencyTracker * tracker() const
friend void intrusive_ptr_add_ref(IFMapNodeState *state)
void SetObject(IFMapNode *node, DBEntry *entry)
void IFMapNodeReset(IFMapNode *node)
void LinkObserver(DBTablePartBase *root, DBEntryBase *db_entry)
void NodeObserver(DBTablePartBase *root, DBEntryBase *db_entry)
std::map< std::string, PropagateList > ReactionMap
void set_notify(bool flag)
boost::uuids::uuid uuid()
bool oper_db_request_enqueued() const
IFMapNodeState(IFMapDependencyManager *manager, IFMapNode *node)
friend void intrusive_ptr_release(IFMapNodeState *state)
void set_oper_db_request_enqueued(bool oper_db_request_enqueued)
bool oper_db_request_enqueued_
void set_object(DBEntry *object)
void set_uuid(const boost::uuids::uuid &u)
IFMapDependencyManager * manager_
friend void intrusive_ptr_add_ref(IFMapNodeState *state)
Link(const std::string &edge, const std::string &vertex, bool interest)