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

#include <ifmap_dependency_manager.h>

Collaboration diagram for IFMapDependencyManager:

Classes

struct  Link
 

Public Types

typedef boost::intrusive_ptr
< IFMapNodeState
IFMapNodePtr
 
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::ListenerId
TableMap
 
typedef std::map< std::string,
ChangeEventHandler
EventMap
 

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
< IFMapDependencyTracker
tracker_
 
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

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

Definition at line 92 of file ifmap_dependency_manager.h.

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

Definition at line 174 of file ifmap_dependency_manager.h.

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

Definition at line 176 of file ifmap_dependency_manager.h.

Definition at line 91 of file ifmap_dependency_manager.h.

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

Definition at line 102 of file ifmap_dependency_manager.h.

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 ( DB database,
DBGraph graph 
)

Definition at line 67 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

IFMapDependencyManager::~IFMapDependencyManager ( )
virtual

Definition at line 81 of file ifmap_dependency_manager.cc.

Member Function Documentation

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:

void IFMapDependencyManager::ChangeListAdd ( IFMapNode node)
private

Definition at line 326 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::disable_trigger ( )
inline

Definition at line 163 of file ifmap_dependency_manager.h.

void IFMapDependencyManager::enable_trigger ( )
inline

Definition at line 162 of file ifmap_dependency_manager.h.

DBEntry * IFMapDependencyManager::GetObject ( IFMapNode node)

Definition at line 413 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

IFMapNodeState * IFMapDependencyManager::IFMapNodeGet ( IFMapNode node)

Definition at line 337 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::IFMapNodeReset ( IFMapNode node)
private

Definition at line 348 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::Initialize ( Agent agent)

Definition at line 85 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::InitializeDependencyRules ( Agent agent)

Definition at line 615 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

bool IFMapDependencyManager::IsNodeIdentifiedByUuid ( const IFMapNode node)

Definition at line 448 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

bool IFMapDependencyManager::IsRegistered ( const IFMapNode node)

Definition at line 443 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

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:

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

Definition at line 271 of file ifmap_dependency_manager.cc.

bool IFMapDependencyManager::ProcessChangeList ( )
private

Definition at line 250 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::PropogateNodeAndLinkChange ( IFMapNode node)

Definition at line 284 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::PropogateNodeChange ( IFMapNode node)

Definition at line 279 of file ifmap_dependency_manager.cc.

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

Definition at line 430 of file ifmap_dependency_manager.cc.

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

Definition at line 227 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

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:

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:

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:

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

Definition at line 397 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

void IFMapDependencyManager::Terminate ( )

Definition at line 239 of file ifmap_dependency_manager.cc.

Here is the call graph for this function:

IFMapDependencyTracker* IFMapDependencyManager::tracker ( ) const
inline

Definition at line 153 of file ifmap_dependency_manager.h.

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

Definition at line 438 of file ifmap_dependency_manager.cc.

Friends And Related Function Documentation

void intrusive_ptr_add_ref ( IFMapNodeState state)
friend

Definition at line 55 of file ifmap_dependency_manager.cc.

void intrusive_ptr_release ( IFMapNodeState state)
friend

Definition at line 59 of file ifmap_dependency_manager.cc.

Member Data Documentation

Agent* IFMapDependencyManager::agent_
private

Definition at line 186 of file ifmap_dependency_manager.h.

ChangeList IFMapDependencyManager::change_list_
private

Definition at line 193 of file ifmap_dependency_manager.h.

DB* IFMapDependencyManager::database_
private

Definition at line 187 of file ifmap_dependency_manager.h.

EventMap IFMapDependencyManager::event_map_
private

Definition at line 192 of file ifmap_dependency_manager.h.

DBGraph* IFMapDependencyManager::graph_
private

Definition at line 188 of file ifmap_dependency_manager.h.

TableMap IFMapDependencyManager::table_map_
private

Definition at line 191 of file ifmap_dependency_manager.h.

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

Definition at line 189 of file ifmap_dependency_manager.h.

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: