OpenSDN source code
IFMapDependencyManager Class Reference

#include <ifmap_dependency_manager.h>

Collaboration diagram for IFMapDependencyManager:

Classes

struct  Link
 

Public Types

typedef boost::intrusive_ptr< IFMapNodeStateIFMapNodePtr
 
typedef boost::function< void(IFMapNode *, DBEntry *)> ChangeEventHandler
 
typedef std::vector< LinkPath
 

Public Member Functions

 IFMapDependencyManager (DB *database, DBGraph *graph)
 
virtual ~IFMapDependencyManager ()
 
void Initialize (Agent *agent)
 
void Terminate ()
 
void AddDependencyPath (const std::string &node, Path path)
 
void InitializeDependencyRules (Agent *agent)
 
void RegisterReactionMap (const char *node_name, const IFMapDependencyTracker::ReactionMap &react)
 
void SetObject (IFMapNode *node, DBEntry *entry)
 
IFMapNodePtr SetState (IFMapNode *node)
 
void SetNotify (IFMapNode *node, bool notfiy_flag)
 
void SetRequestEnqueued (IFMapNode *node, bool oper_db_request_enqueued)
 
IFMapNodeStateIFMapNodeGet (IFMapNode *node)
 
DBEntryGetObject (IFMapNode *node)
 
void Register (const std::string &type, ChangeEventHandler handler)
 
void Unregister (const std::string &type)
 
IFMapDependencyTrackertracker () const
 
void PropogateNodeChange (IFMapNode *node)
 
void PropogateNodeAndLinkChange (IFMapNode *node)
 
bool IsRegistered (const IFMapNode *node)
 
bool IsNodeIdentifiedByUuid (const IFMapNode *node)
 
void enable_trigger ()
 
void disable_trigger ()
 

Private Types

typedef std::vector< IFMapNodePtrChangeList
 
typedef std::map< std::string, DBTable::ListenerIdTableMap
 
typedef std::map< std::string, ChangeEventHandlerEventMap
 

Private Member Functions

bool ProcessChangeList ()
 
void NodeObserver (DBTablePartBase *root, DBEntryBase *db_entry)
 
void LinkObserver (DBTablePartBase *root, DBEntryBase *db_entry)
 
void ChangeListAdd (IFMapNode *node)
 
void IFMapNodeReset (IFMapNode *node)
 

Private Attributes

Agentagent_
 
DBdatabase_
 
DBGraphgraph_
 
std::unique_ptr< IFMapDependencyTrackertracker_
 
std::unique_ptr< TaskTriggertrigger_
 
TableMap table_map_
 
EventMap event_map_
 
ChangeList change_list_
 

Friends

void intrusive_ptr_add_ref (IFMapNodeState *state)
 
void intrusive_ptr_release (IFMapNodeState *state)
 

Detailed Description

Definition at line 89 of file ifmap_dependency_manager.h.

Member Typedef Documentation

◆ ChangeEventHandler

typedef boost::function<void(IFMapNode *, DBEntry *)> IFMapDependencyManager::ChangeEventHandler

Definition at line 92 of file ifmap_dependency_manager.h.

◆ ChangeList

typedef std::vector<IFMapNodePtr> IFMapDependencyManager::ChangeList
private

Definition at line 174 of file ifmap_dependency_manager.h.

◆ EventMap

typedef std::map<std::string, ChangeEventHandler> IFMapDependencyManager::EventMap
private

Definition at line 176 of file ifmap_dependency_manager.h.

◆ IFMapNodePtr

Definition at line 91 of file ifmap_dependency_manager.h.

◆ Path

typedef std::vector<Link> IFMapDependencyManager::Path

Definition at line 102 of file ifmap_dependency_manager.h.

◆ TableMap

typedef std::map<std::string, DBTable::ListenerId> IFMapDependencyManager::TableMap
private

Definition at line 175 of file ifmap_dependency_manager.h.

Constructor & Destructor Documentation

◆ IFMapDependencyManager()

IFMapDependencyManager::IFMapDependencyManager ( DB database,
DBGraph graph 
)

Definition at line 67 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ ~IFMapDependencyManager()

IFMapDependencyManager::~IFMapDependencyManager ( )
virtual

Definition at line 81 of file ifmap_dependency_manager.cc.

Member Function Documentation

◆ AddDependencyPath()

void IFMapDependencyManager::AddDependencyPath ( const std::string &  node,
Path  path 
)

Definition at line 561 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ ChangeListAdd()

void IFMapDependencyManager::ChangeListAdd ( IFMapNode node)
private

Definition at line 326 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ disable_trigger()

void IFMapDependencyManager::disable_trigger ( )
inline

Definition at line 163 of file ifmap_dependency_manager.h.

◆ enable_trigger()

void IFMapDependencyManager::enable_trigger ( )
inline

Definition at line 162 of file ifmap_dependency_manager.h.

◆ GetObject()

DBEntry * IFMapDependencyManager::GetObject ( IFMapNode node)

Definition at line 413 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ IFMapNodeGet()

IFMapNodeState * IFMapDependencyManager::IFMapNodeGet ( IFMapNode node)

Definition at line 337 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ IFMapNodeReset()

void IFMapDependencyManager::IFMapNodeReset ( IFMapNode node)
private

Definition at line 348 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ Initialize()

void IFMapDependencyManager::Initialize ( Agent agent)

Definition at line 85 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ InitializeDependencyRules()

void IFMapDependencyManager::InitializeDependencyRules ( Agent agent)

Definition at line 615 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ IsNodeIdentifiedByUuid()

bool IFMapDependencyManager::IsNodeIdentifiedByUuid ( const IFMapNode node)

Definition at line 448 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ IsRegistered()

bool IFMapDependencyManager::IsRegistered ( const IFMapNode node)

Definition at line 443 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ LinkObserver()

void IFMapDependencyManager::LinkObserver ( DBTablePartBase root,
DBEntryBase db_entry 
)
private

Definition at line 298 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ NodeObserver()

void IFMapDependencyManager::NodeObserver ( DBTablePartBase root,
DBEntryBase db_entry 
)
private

Definition at line 271 of file ifmap_dependency_manager.cc.

◆ ProcessChangeList()

bool IFMapDependencyManager::ProcessChangeList ( )
private

Definition at line 250 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ PropogateNodeAndLinkChange()

void IFMapDependencyManager::PropogateNodeAndLinkChange ( IFMapNode node)

Definition at line 284 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ PropogateNodeChange()

void IFMapDependencyManager::PropogateNodeChange ( IFMapNode node)

Definition at line 279 of file ifmap_dependency_manager.cc.

◆ Register()

void IFMapDependencyManager::Register ( const std::string &  type,
ChangeEventHandler  handler 
)

Definition at line 430 of file ifmap_dependency_manager.cc.

◆ RegisterReactionMap()

void IFMapDependencyManager::RegisterReactionMap ( const char *  node_name,
const IFMapDependencyTracker::ReactionMap react 
)

Definition at line 226 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ SetNotify()

void IFMapDependencyManager::SetNotify ( IFMapNode node,
bool  notfiy_flag 
)

Definition at line 379 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ SetObject()

void IFMapDependencyManager::SetObject ( IFMapNode node,
DBEntry entry 
)

Definition at line 362 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ SetRequestEnqueued()

void IFMapDependencyManager::SetRequestEnqueued ( IFMapNode node,
bool  oper_db_request_enqueued 
)

Definition at line 387 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ SetState()

IFMapDependencyManager::IFMapNodePtr IFMapDependencyManager::SetState ( IFMapNode node)

Definition at line 397 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ Terminate()

void IFMapDependencyManager::Terminate ( )

Definition at line 239 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

◆ tracker()

IFMapDependencyTracker* IFMapDependencyManager::tracker ( ) const
inline

Definition at line 153 of file ifmap_dependency_manager.h.

◆ Unregister()

void IFMapDependencyManager::Unregister ( const std::string &  type)

Definition at line 438 of file ifmap_dependency_manager.cc.

Friends And Related Function Documentation

◆ intrusive_ptr_add_ref

void intrusive_ptr_add_ref ( IFMapNodeState state)
friend

Definition at line 55 of file ifmap_dependency_manager.cc.

◆ intrusive_ptr_release

void intrusive_ptr_release ( IFMapNodeState state)
friend

Definition at line 59 of file ifmap_dependency_manager.cc.

Member Data Documentation

◆ agent_

Agent* IFMapDependencyManager::agent_
private

Definition at line 186 of file ifmap_dependency_manager.h.

◆ change_list_

ChangeList IFMapDependencyManager::change_list_
private

Definition at line 193 of file ifmap_dependency_manager.h.

◆ database_

DB* IFMapDependencyManager::database_
private

Definition at line 187 of file ifmap_dependency_manager.h.

◆ event_map_

EventMap IFMapDependencyManager::event_map_
private

Definition at line 192 of file ifmap_dependency_manager.h.

◆ graph_

DBGraph* IFMapDependencyManager::graph_
private

Definition at line 188 of file ifmap_dependency_manager.h.

◆ table_map_

TableMap IFMapDependencyManager::table_map_
private

Definition at line 191 of file ifmap_dependency_manager.h.

◆ tracker_

std::unique_ptr<IFMapDependencyTracker> IFMapDependencyManager::tracker_
private

Definition at line 189 of file ifmap_dependency_manager.h.

◆ trigger_

std::unique_ptr<TaskTrigger> IFMapDependencyManager::trigger_
private

Definition at line 190 of file ifmap_dependency_manager.h.


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