OpenSDN source code
IFMapExporter Class Reference

#include <ifmap_exporter.h>

Collaboration diagram for IFMapExporter:

Classes

class  TableInfo
 

Public Types

enum  TrackerType { INTEREST , ADVERTISED , TT_END }
 
typedef boost::unordered_set< IFMapState * > ConfigSet
 
typedef ConfigSet::size_type CsSz_t
 
typedef ConfigSet::const_iterator Cs_citer
 
typedef std::vector< ConfigSet * > ClientConfigTracker
 
typedef boost::crc_32_type::value_type crc32type
 

Public Member Functions

 IFMapExporter (IFMapServer *server)
 
 ~IFMapExporter ()
 
void Initialize (DB *db)
 
void Shutdown ()
 
void StateUpdateOnDequeue (IFMapUpdate *update, const BitSet &dequeue_set, bool is_delete)
 
DBTable::ListenerId TableListenerId (const DBTable *table) const
 
IFMapNodeStateNodeStateLocate (IFMapNode *node)
 
IFMapNodeStateNodeStateLookup (IFMapNode *node)
 
IFMapLinkStateLinkStateLookup (IFMapLink *link)
 
DBTablelink_table ()
 
IFMapServerserver ()
 
bool FilterNeighbor (IFMapNode *lnode, IFMapLink *link)
 
void AddClientConfigTracker (int index)
 
void DeleteClientConfigTracker (int index)
 
void UpdateClientConfigTracker (IFMapState *state, const BitSet &client_bits, bool add, TrackerType tracker_type)
 
void CleanupClientConfigTrackedEntries (int index)
 
bool ClientHasConfigTracker (TrackerType tracker_type, int index)
 
bool ClientConfigTrackerHasState (TrackerType tracker_type, int index, IFMapState *state)
 
bool ClientConfigTrackerEmpty (TrackerType tracker_type, int index)
 
size_t ClientConfigTrackerSize (TrackerType tracker_type, int index)
 
Cs_citer ClientConfigTrackerBegin (TrackerType tracker_type, int index) const
 
Cs_citer ClientConfigTrackerEnd (TrackerType tracker_type, int index) const
 
void StateInterestSet (IFMapState *state, const BitSet &interest_bits)
 
void StateInterestOr (IFMapState *state, const BitSet &interest_bits)
 
void StateInterestReset (IFMapState *state, const BitSet &interest_bits)
 
void StateAdvertisedOr (IFMapState *state, const BitSet &interest_bits)
 
void StateAdvertisedReset (IFMapState *state, const BitSet &interest_bits)
 
const IFMapTypenameWhiteListget_traversal_white_list () const
 
void ResetLinkDeleteClients (const BitSet &bset)
 

Private Types

typedef std::map< DBTable *, TableInfo * > TableMap
 

Private Member Functions

void NodeTableExport (DBTablePartBase *partition, DBEntryBase *entry)
 
void LinkTableExport (DBTablePartBase *partition, DBEntryBase *entry)
 
template<class ObjectType >
bool UpdateAddChange (ObjectType *obj, IFMapState *state, const BitSet &add_set, const BitSet &rm_set, bool change)
 
template<class ObjectType >
bool UpdateRemove (ObjectType *obj, IFMapState *state, const BitSet &rm_set)
 
template<class ObjectType >
void EnqueueDelete (ObjectType *obj, IFMapState *state)
 
void MoveDependentLinks (IFMapNodeState *state)
 
void RemoveDependentLinks (IFMapNodeState *state, const BitSet &rm_set)
 
void MoveAdjacentNode (IFMapNodeState *state)
 
void ProcessAdjacentNode (IFMapNode *node, const BitSet &add_set, IFMapNodeState *state, bool force_process=false)
 
bool IsFeasible (const IFMapNode *node)
 
const BitSetMergeClientInterest (IFMapNode *node, IFMapNodeState *state, std::unique_ptr< BitSet > *ptr)
 
const TableInfoFind (const DBTable *table) const
 
void TableStateClear (DBTable *table, DBTable::ListenerId tsid)
 
bool ConfigChanged (IFMapNode *node)
 
void DeleteStateIfAppropriate (DBTable *table, DBEntryBase *entry, IFMapState *state)
 
IFMapUpdateQueuequeue ()
 
IFMapUpdateSendersender ()
 

Private Attributes

IFMapServerserver_
 
boost::scoped_ptr< IFMapGraphWalkerwalker_
 
TableMap table_map_
 
DBTablelink_table_
 
ClientConfigTracker client_config_tracker_ [TT_END]
 

Friends

class XmppIfmapTest
 

Detailed Description

Definition at line 41 of file ifmap_exporter.h.

Member Typedef Documentation

◆ ClientConfigTracker

Definition at line 51 of file ifmap_exporter.h.

◆ ConfigSet

typedef boost::unordered_set<IFMapState *> IFMapExporter::ConfigSet

Definition at line 48 of file ifmap_exporter.h.

◆ crc32type

typedef boost::crc_32_type::value_type IFMapExporter::crc32type

Definition at line 52 of file ifmap_exporter.h.

◆ Cs_citer

typedef ConfigSet::const_iterator IFMapExporter::Cs_citer

Definition at line 50 of file ifmap_exporter.h.

◆ CsSz_t

typedef ConfigSet::size_type IFMapExporter::CsSz_t

Definition at line 49 of file ifmap_exporter.h.

◆ TableMap

typedef std::map<DBTable *, TableInfo *> IFMapExporter::TableMap
private

Definition at line 99 of file ifmap_exporter.h.

Member Enumeration Documentation

◆ TrackerType

Enumerator
INTEREST 
ADVERTISED 
TT_END 

Definition at line 43 of file ifmap_exporter.h.

Constructor & Destructor Documentation

◆ IFMapExporter()

IFMapExporter::IFMapExporter ( IFMapServer server)
explicit

Definition at line 39 of file ifmap_exporter.cc.

◆ ~IFMapExporter()

IFMapExporter::~IFMapExporter ( )

Definition at line 43 of file ifmap_exporter.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AddClientConfigTracker()

void IFMapExporter::AddClientConfigTracker ( int  index)

Definition at line 678 of file ifmap_exporter.cc.

◆ CleanupClientConfigTrackedEntries()

void IFMapExporter::CleanupClientConfigTrackedEntries ( int  index)

Definition at line 713 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ ClientConfigTrackerBegin()

IFMapExporter::Cs_citer IFMapExporter::ClientConfigTrackerBegin ( TrackerType  tracker_type,
int  index 
) const

Definition at line 760 of file ifmap_exporter.cc.

◆ ClientConfigTrackerEmpty()

bool IFMapExporter::ClientConfigTrackerEmpty ( TrackerType  tracker_type,
int  index 
)

Definition at line 746 of file ifmap_exporter.cc.

◆ ClientConfigTrackerEnd()

IFMapExporter::Cs_citer IFMapExporter::ClientConfigTrackerEnd ( TrackerType  tracker_type,
int  index 
) const

Definition at line 767 of file ifmap_exporter.cc.

◆ ClientConfigTrackerHasState()

bool IFMapExporter::ClientConfigTrackerHasState ( TrackerType  tracker_type,
int  index,
IFMapState state 
)

Definition at line 738 of file ifmap_exporter.cc.

◆ ClientConfigTrackerSize()

size_t IFMapExporter::ClientConfigTrackerSize ( TrackerType  tracker_type,
int  index 
)

Definition at line 753 of file ifmap_exporter.cc.

◆ ClientHasConfigTracker()

bool IFMapExporter::ClientHasConfigTracker ( TrackerType  tracker_type,
int  index 
)

Definition at line 732 of file ifmap_exporter.cc.

◆ ConfigChanged()

bool IFMapExporter::ConfigChanged ( IFMapNode node)
private

Definition at line 664 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ DeleteClientConfigTracker()

void IFMapExporter::DeleteClientConfigTracker ( int  index)

Definition at line 689 of file ifmap_exporter.cc.

◆ DeleteStateIfAppropriate()

void IFMapExporter::DeleteStateIfAppropriate ( DBTable table,
DBEntryBase entry,
IFMapState state 
)
private

Definition at line 356 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ EnqueueDelete()

template<class ObjectType >
void IFMapExporter::EnqueueDelete ( ObjectType *  obj,
IFMapState state 
)
private

Definition at line 255 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ FilterNeighbor()

bool IFMapExporter::FilterNeighbor ( IFMapNode lnode,
IFMapLink link 
)

Definition at line 660 of file ifmap_exporter.cc.

◆ Find()

const IFMapExporter::TableInfo * IFMapExporter::Find ( const DBTable table) const
private

Definition at line 93 of file ifmap_exporter.cc.

◆ get_traversal_white_list()

const IFMapTypenameWhiteList & IFMapExporter::get_traversal_white_list ( ) const

Definition at line 832 of file ifmap_exporter.cc.

◆ Initialize()

void IFMapExporter::Initialize ( DB db)

Definition at line 47 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ IsFeasible()

bool IFMapExporter::IsFeasible ( const IFMapNode node)
private

Definition at line 112 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ link_table()

DBTable* IFMapExporter::link_table ( )
inline

Definition at line 69 of file ifmap_exporter.h.

◆ LinkStateLookup()

IFMapLinkState * IFMapExporter::LinkStateLookup ( IFMapLink link)

Definition at line 281 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ LinkTableExport()

void IFMapExporter::LinkTableExport ( DBTablePartBase partition,
DBEntryBase entry 
)
private

Definition at line 450 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ MergeClientInterest()

const BitSet * IFMapExporter::MergeClientInterest ( IFMapNode node,
IFMapNodeState state,
std::unique_ptr< BitSet > *  ptr 
)
private

Definition at line 119 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ MoveAdjacentNode()

void IFMapExporter::MoveAdjacentNode ( IFMapNodeState state)
private

Definition at line 309 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ MoveDependentLinks()

void IFMapExporter::MoveDependentLinks ( IFMapNodeState state)
private

Definition at line 290 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ NodeStateLocate()

IFMapNodeState * IFMapExporter::NodeStateLocate ( IFMapNode node)

Definition at line 147 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ NodeStateLookup()

IFMapNodeState * IFMapExporter::NodeStateLookup ( IFMapNode node)

Definition at line 140 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ NodeTableExport()

void IFMapExporter::NodeTableExport ( DBTablePartBase partition,
DBEntryBase entry 
)
private

Definition at line 380 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ ProcessAdjacentNode()

void IFMapExporter::ProcessAdjacentNode ( IFMapNode node,
const BitSet add_set,
IFMapNodeState state,
bool  force_process = false 
)
private

Definition at line 336 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ queue()

IFMapUpdateQueue * IFMapExporter::queue ( )
private

Definition at line 158 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ RemoveDependentLinks()

void IFMapExporter::RemoveDependentLinks ( IFMapNodeState state,
const BitSet rm_set 
)
private

Definition at line 319 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ ResetLinkDeleteClients()

void IFMapExporter::ResetLinkDeleteClients ( const BitSet bset)

Definition at line 836 of file ifmap_exporter.cc.

◆ sender()

IFMapUpdateSender * IFMapExporter::sender ( )
private

Definition at line 162 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ server()

IFMapServer* IFMapExporter::server ( )
inline

Definition at line 70 of file ifmap_exporter.h.

◆ Shutdown()

void IFMapExporter::Shutdown ( )

Definition at line 71 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateAdvertisedOr()

void IFMapExporter::StateAdvertisedOr ( IFMapState state,
const BitSet interest_bits 
)

Definition at line 816 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateAdvertisedReset()

void IFMapExporter::StateAdvertisedReset ( IFMapState state,
const BitSet interest_bits 
)

Definition at line 825 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateInterestOr()

void IFMapExporter::StateInterestOr ( IFMapState state,
const BitSet interest_bits 
)

Definition at line 799 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateInterestReset()

void IFMapExporter::StateInterestReset ( IFMapState state,
const BitSet interest_bits 
)

Definition at line 808 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateInterestSet()

void IFMapExporter::StateInterestSet ( IFMapState state,
const BitSet interest_bits 
)

Definition at line 774 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ StateUpdateOnDequeue()

void IFMapExporter::StateUpdateOnDequeue ( IFMapUpdate update,
const BitSet dequeue_set,
bool  is_delete 
)

Definition at line 592 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ TableListenerId()

DBTableBase::ListenerId IFMapExporter::TableListenerId ( const DBTable table) const

Definition at line 103 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ TableStateClear()

void IFMapExporter::TableStateClear ( DBTable table,
DBTable::ListenerId  tsid 
)
private

Definition at line 639 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ UpdateAddChange()

template<class ObjectType >
bool IFMapExporter::UpdateAddChange ( ObjectType *  obj,
IFMapState state,
const BitSet add_set,
const BitSet rm_set,
bool  change 
)
private

Definition at line 167 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ UpdateClientConfigTracker()

void IFMapExporter::UpdateClientConfigTracker ( IFMapState state,
const BitSet client_bits,
bool  add,
TrackerType  tracker_type 
)

Definition at line 698 of file ifmap_exporter.cc.

Here is the call graph for this function:

◆ UpdateRemove()

template<class ObjectType >
bool IFMapExporter::UpdateRemove ( ObjectType *  obj,
IFMapState state,
const BitSet rm_set 
)
private

Definition at line 219 of file ifmap_exporter.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ XmppIfmapTest

friend class XmppIfmapTest
friend

Definition at line 97 of file ifmap_exporter.h.

Member Data Documentation

◆ client_config_tracker_

ClientConfigTracker IFMapExporter::client_config_tracker_[TT_END]
private

Definition at line 142 of file ifmap_exporter.h.

◆ link_table_

DBTable* IFMapExporter::link_table_
private

Definition at line 141 of file ifmap_exporter.h.

◆ server_

IFMapServer* IFMapExporter::server_
private

Definition at line 137 of file ifmap_exporter.h.

◆ table_map_

TableMap IFMapExporter::table_map_
private

Definition at line 139 of file ifmap_exporter.h.

◆ walker_

boost::scoped_ptr<IFMapGraphWalker> IFMapExporter::walker_
private

Definition at line 138 of file ifmap_exporter.h.


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