OpenSDN source code
FlowMgmtTree Class Referenceabstract

#include <flow_mgmt_tree.h>

Inheritance diagram for FlowMgmtTree:
Collaboration diagram for FlowMgmtTree:

Public Types

typedef std::map< FlowMgmtKey *, FlowMgmtEntry *, FlowMgmtKeyCmp > Tree
 

Public Member Functions

 FlowMgmtTree (FlowMgmtManager *mgr)
 
virtual ~FlowMgmtTree ()
 
virtual bool Add (FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
 
virtual bool Delete (FlowMgmtKey *key, FlowEntry *flow, FlowMgmtKeyNode *node)
 
virtual void InsertEntry (FlowMgmtKey *key, FlowMgmtEntry *entry)
 
virtual void RemoveEntry (Tree::iterator it)
 
virtual bool OperEntryAdd (const FlowMgmtRequest *req, FlowMgmtKey *key)
 
virtual bool OperEntryChange (const FlowMgmtRequest *req, FlowMgmtKey *key)
 
virtual bool OperEntryDelete (const FlowMgmtRequest *req, FlowMgmtKey *key)
 
virtual bool RetryDelete (FlowMgmtKey *key)
 
virtual void ExtractKeys (FlowEntry *flow, FlowMgmtKeyTree *tree)=0
 
virtual FlowMgmtEntry * Allocate (const FlowMgmtKey *key)=0
 
virtual void FreeNotify (FlowMgmtKey *key, uint32_t gen_id)
 
FlowMgmtEntry * Locate (FlowMgmtKey *key)
 
FlowMgmtEntry * Find (FlowMgmtKey *key)
 
FlowMgmtKey * LowerBound (FlowMgmtKey *key)
 
Tree & tree ()
 
FlowMgmtManager * mgr () const
 

Static Public Member Functions

static bool AddFlowMgmtKey (FlowMgmtKeyTree *tree, FlowMgmtKey *key)
 

Protected Member Functions

bool TryDelete (FlowMgmtKey *key, FlowMgmtEntry *entry)
 

Protected Attributes

Tree tree_
 
FlowMgmtManager * mgr_
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (FlowMgmtTree)
 

Detailed Description

Definition at line 20 of file flow_mgmt_tree.h.

Member Typedef Documentation

◆ Tree

Definition at line 22 of file flow_mgmt_tree.h.

Constructor & Destructor Documentation

◆ FlowMgmtTree()

FlowMgmtTree::FlowMgmtTree ( FlowMgmtManager *  mgr)
inline

Definition at line 23 of file flow_mgmt_tree.h.

◆ ~FlowMgmtTree()

virtual FlowMgmtTree::~FlowMgmtTree ( )
inlinevirtual

Definition at line 24 of file flow_mgmt_tree.h.

Member Function Documentation

◆ Add()

bool FlowMgmtTree::Add ( FlowMgmtKey *  key,
FlowEntry *  flow,
FlowMgmtKeyNode *  node 
)
virtual

Definition at line 80 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ AddFlowMgmtKey()

bool FlowMgmtTree::AddFlowMgmtKey ( FlowMgmtKeyTree *  tree,
FlowMgmtKey *  key 
)
static

Definition at line 67 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ Allocate()

◆ Delete()

bool FlowMgmtTree::Delete ( FlowMgmtKey *  key,
FlowEntry *  flow,
FlowMgmtKeyNode *  node 
)
virtual

Reimplemented in RouteFlowMgmtTree, and AclFlowMgmtTree.

Definition at line 90 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

FlowMgmtTree::DISALLOW_COPY_AND_ASSIGN ( FlowMgmtTree  )
private

◆ ExtractKeys()

virtual void FlowMgmtTree::ExtractKeys ( FlowEntry *  flow,
FlowMgmtKeyTree *  tree 
)
pure virtual

◆ Find()

FlowMgmtEntry * FlowMgmtTree::Find ( FlowMgmtKey *  key)

Definition at line 11 of file flow_mgmt_tree.cc.

◆ FreeNotify()

void FlowMgmtTree::FreeNotify ( FlowMgmtKey *  key,
uint32_t  gen_id 
)
virtual

Reimplemented in BgpAsAServiceFlowMgmtTree, and VrfFlowMgmtTree.

Definition at line 109 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ InsertEntry()

void FlowMgmtTree::InsertEntry ( FlowMgmtKey *  key,
FlowMgmtEntry *  entry 
)
virtual

Reimplemented in InterfaceFlowMgmtTree, and VnFlowMgmtTree.

Definition at line 29 of file flow_mgmt_tree.cc.

◆ Locate()

FlowMgmtEntry * FlowMgmtTree::Locate ( FlowMgmtKey *  key)

Definition at line 19 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ LowerBound()

FlowMgmtKey * FlowMgmtTree::LowerBound ( FlowMgmtKey *  key)

Definition at line 33 of file flow_mgmt_tree.cc.

◆ mgr()

FlowMgmtManager* FlowMgmtTree::mgr ( ) const
inline

Definition at line 62 of file flow_mgmt_tree.h.

◆ OperEntryAdd()

bool FlowMgmtTree::OperEntryAdd ( const FlowMgmtRequest *  req,
FlowMgmtKey *  key 
)
virtual

Reimplemented in VrfFlowMgmtTree, InetRouteFlowMgmtTree, and RouteFlowMgmtTree.

Definition at line 118 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ OperEntryChange()

bool FlowMgmtTree::OperEntryChange ( const FlowMgmtRequest *  req,
FlowMgmtKey *  key 
)
virtual

Definition at line 124 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ OperEntryDelete()

bool FlowMgmtTree::OperEntryDelete ( const FlowMgmtRequest *  req,
FlowMgmtKey *  key 
)
virtual

Reimplemented in VrfFlowMgmtTree, InetRouteFlowMgmtTree, and RouteFlowMgmtTree.

Definition at line 134 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ RemoveEntry()

void FlowMgmtTree::RemoveEntry ( Tree::iterator  it)
virtual

Reimplemented in InterfaceFlowMgmtTree, and VnFlowMgmtTree.

Definition at line 60 of file flow_mgmt_tree.cc.

◆ RetryDelete()

bool FlowMgmtTree::RetryDelete ( FlowMgmtKey *  key)
virtual

Definition at line 146 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

◆ tree()

Tree& FlowMgmtTree::tree ( )
inline

Definition at line 61 of file flow_mgmt_tree.h.

◆ TryDelete()

bool FlowMgmtTree::TryDelete ( FlowMgmtKey *  key,
FlowMgmtEntry *  entry 
)
protected

Definition at line 41 of file flow_mgmt_tree.cc.

Here is the call graph for this function:

Member Data Documentation

◆ mgr_

FlowMgmtManager* FlowMgmtTree::mgr_
protected

Definition at line 68 of file flow_mgmt_tree.h.

◆ tree_

Tree FlowMgmtTree::tree_
protected

Definition at line 67 of file flow_mgmt_tree.h.


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