OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
< IFMapGraphWalker
walker_
 
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

Definition at line 51 of file ifmap_exporter.h.

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

Definition at line 48 of file ifmap_exporter.h.

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

Definition at line 52 of file ifmap_exporter.h.

typedef ConfigSet::const_iterator IFMapExporter::Cs_citer

Definition at line 50 of file ifmap_exporter.h.

typedef ConfigSet::size_type IFMapExporter::CsSz_t

Definition at line 49 of file ifmap_exporter.h.

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

Definition at line 98 of file ifmap_exporter.h.

Member Enumeration Documentation

Enumerator
INTEREST 
ADVERTISED 
TT_END 

Definition at line 43 of file ifmap_exporter.h.

Constructor & Destructor Documentation

IFMapExporter::IFMapExporter ( IFMapServer server)
explicit

Definition at line 38 of file ifmap_exporter.cc.

IFMapExporter::~IFMapExporter ( )

Definition at line 42 of file ifmap_exporter.cc.

Here is the call graph for this function:

Member Function Documentation

void IFMapExporter::AddClientConfigTracker ( int  index)

Definition at line 677 of file ifmap_exporter.cc.

void IFMapExporter::CleanupClientConfigTrackedEntries ( int  index)

Definition at line 712 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 759 of file ifmap_exporter.cc.

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

Definition at line 745 of file ifmap_exporter.cc.

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

Definition at line 766 of file ifmap_exporter.cc.

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

Definition at line 737 of file ifmap_exporter.cc.

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

Definition at line 752 of file ifmap_exporter.cc.

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

Definition at line 731 of file ifmap_exporter.cc.

bool IFMapExporter::ConfigChanged ( IFMapNode node)
private

Definition at line 663 of file ifmap_exporter.cc.

Here is the call graph for this function:

void IFMapExporter::DeleteClientConfigTracker ( int  index)

Definition at line 688 of file ifmap_exporter.cc.

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

Definition at line 355 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 254 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 659 of file ifmap_exporter.cc.

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

Definition at line 92 of file ifmap_exporter.cc.

const IFMapTypenameWhiteList & IFMapExporter::get_traversal_white_list ( ) const

Definition at line 831 of file ifmap_exporter.cc.

void IFMapExporter::Initialize ( DB db)

Definition at line 46 of file ifmap_exporter.cc.

Here is the call graph for this function:

bool IFMapExporter::IsFeasible ( const IFMapNode node)
private

Definition at line 111 of file ifmap_exporter.cc.

Here is the call graph for this function:

DBTable* IFMapExporter::link_table ( )
inline

Definition at line 69 of file ifmap_exporter.h.

IFMapLinkState * IFMapExporter::LinkStateLookup ( IFMapLink link)

Definition at line 280 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 449 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 118 of file ifmap_exporter.cc.

Here is the call graph for this function:

void IFMapExporter::MoveAdjacentNode ( IFMapNodeState state)
private

Definition at line 308 of file ifmap_exporter.cc.

Here is the call graph for this function:

void IFMapExporter::MoveDependentLinks ( IFMapNodeState state)
private

Definition at line 289 of file ifmap_exporter.cc.

Here is the call graph for this function:

IFMapNodeState * IFMapExporter::NodeStateLocate ( IFMapNode node)

Definition at line 146 of file ifmap_exporter.cc.

Here is the call graph for this function:

IFMapNodeState * IFMapExporter::NodeStateLookup ( IFMapNode node)

Definition at line 139 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 379 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 335 of file ifmap_exporter.cc.

Here is the call graph for this function:

IFMapUpdateQueue * IFMapExporter::queue ( )
private

Definition at line 157 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 318 of file ifmap_exporter.cc.

Here is the call graph for this function:

void IFMapExporter::ResetLinkDeleteClients ( const BitSet bset)

Definition at line 835 of file ifmap_exporter.cc.

IFMapUpdateSender * IFMapExporter::sender ( )
private

Definition at line 161 of file ifmap_exporter.cc.

Here is the call graph for this function:

IFMapServer* IFMapExporter::server ( )
inline

Definition at line 70 of file ifmap_exporter.h.

void IFMapExporter::Shutdown ( )

Definition at line 70 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 815 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 824 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 798 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 807 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 773 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 591 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 102 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 638 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 166 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 697 of file ifmap_exporter.cc.

Here is the call graph for this function:

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

Definition at line 218 of file ifmap_exporter.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class XmppIfmapTest
friend

Definition at line 97 of file ifmap_exporter.h.

Member Data Documentation

ClientConfigTracker IFMapExporter::client_config_tracker_[TT_END]
private

Definition at line 142 of file ifmap_exporter.h.

DBTable* IFMapExporter::link_table_
private

Definition at line 141 of file ifmap_exporter.h.

IFMapServer* IFMapExporter::server_
private

Definition at line 137 of file ifmap_exporter.h.

TableMap IFMapExporter::table_map_
private

Definition at line 139 of file ifmap_exporter.h.

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: