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

#include <controller_route_walker.h>

Inheritance diagram for ControllerRouteWalker:
Collaboration diagram for ControllerRouteWalker:

Public Types

enum  Type { NOTIFYALL, NOTIFYMULTICAST, DELPEER, DELSTALE }
 
- Public Types inherited from AgentRouteWalker
typedef boost::function< void()> WalkDone
 
typedef boost::function< void(VrfEntry *)> RouteWalkDoneCb
 
typedef std::map< const
VrfEntry *, tbb::atomic< int > > 
VrfRouteWalkCountMap
 

Public Member Functions

 ControllerRouteWalker (const std::string &name, Peer *peer)
 
virtual ~ControllerRouteWalker ()
 
void Start (Type type, bool associate, AgentRouteWalker::WalkDone walk_done_cb)
 
void StartRouteWalk (VrfEntry *vrf, bool associate, Type type)
 
void RouteWalkDoneForVrf (VrfEntry *vrf)
 
void set_type (Type type)
 
uint64_t sequence_number () const
 
void set_sequence_number (uint64_t sequence_number)
 
virtual bool VrfWalkNotify (DBTablePartBase *partition, DBEntryBase *e)
 
virtual bool RouteWalkNotify (DBTablePartBase *partition, DBEntryBase *e)
 
- Public Member Functions inherited from AgentRouteWalker
virtual ~AgentRouteWalker ()
 
void StartVrfWalk ()
 
void StartRouteWalk (VrfEntry *vrf)
 
virtual void VrfWalkDone (DBTableBase *part)
 
virtual void RouteWalkDone (DBTableBase *part)
 
void WalkDoneCallback (WalkDone cb)
 
void RouteWalkDoneForVrfCallback (RouteWalkDoneCb cb)
 
int walk_count () const
 
bool IsWalkCompleted () const
 
bool IsValidDeleteWalkRef () const
 
bool IsValidVrfWalkRef () const
 
bool IsDeregisterDone () const
 
bool AreAllWalksDone () const
 
bool AreAllRouteWalksDone (const VrfEntry *vrf) const
 
bool IsRouteTableWalkCompleted (RouteWalkerDBState *state)
 
AgentRouteWalkerManagermgr ()
 
Agentagent () const
 
uint32_t refcount () const
 

Private Member Functions

bool VrfNotifyInternal (DBTablePartBase *partition, DBEntryBase *e)
 
bool VrfNotifyMulticast (DBTablePartBase *partition, DBEntryBase *e)
 
bool VrfNotifyAll (DBTablePartBase *partition, DBEntryBase *e)
 
bool VrfDelPeer (DBTablePartBase *partition, DBEntryBase *e)
 
bool VrfDelStale (DBTablePartBase *partition, DBEntryBase *e)
 
bool RouteNotifyInternal (DBTablePartBase *partition, DBEntryBase *e)
 
bool RouteNotifyAll (DBTablePartBase *partition, DBEntryBase *e)
 
bool RouteNotifyMulticast (DBTablePartBase *partition, DBEntryBase *e)
 
bool RouteDelPeer (DBTablePartBase *partition, DBEntryBase *e)
 
bool RouteDelStale (DBTablePartBase *partition, DBEntryBase *e)
 
bool IsDeleteWalk () const
 
bool IgnoreNotify ()
 
 DISALLOW_COPY_AND_ASSIGN (ControllerRouteWalker)
 

Private Attributes

Peerpeer_
 
bool associate_
 
Type type_
 
uint64_t sequence_number_
 

Additional Inherited Members

- Static Public Attributes inherited from AgentRouteWalker
static const int kInvalidWalkCount = 0
 
- Protected Member Functions inherited from AgentRouteWalker
 AgentRouteWalker (const std::string &name, Agent *agent)
 
void set_mgr (AgentRouteWalkerManager *mgr)
 

Detailed Description

Definition at line 21 of file controller_route_walker.h.

Member Enumeration Documentation

Enumerator
NOTIFYALL 
NOTIFYMULTICAST 
DELPEER 
DELSTALE 

Definition at line 23 of file controller_route_walker.h.

Constructor & Destructor Documentation

ControllerRouteWalker::ControllerRouteWalker ( const std::string &  name,
Peer peer 
)

Definition at line 24 of file controller_route_walker.cc.

virtual ControllerRouteWalker::~ControllerRouteWalker ( )
inlinevirtual

Definition at line 31 of file controller_route_walker.h.

Member Function Documentation

ControllerRouteWalker::DISALLOW_COPY_AND_ASSIGN ( ControllerRouteWalker  )
private
bool ControllerRouteWalker::IgnoreNotify ( )
private

Definition at line 356 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::IsDeleteWalk ( ) const
private

Definition at line 352 of file controller_route_walker.cc.

bool ControllerRouteWalker::RouteDelPeer ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 281 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::RouteDelStale ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 262 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::RouteNotifyAll ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 246 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::RouteNotifyInternal ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 210 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::RouteNotifyMulticast ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 254 of file controller_route_walker.cc.

Here is the call graph for this function:

void ControllerRouteWalker::RouteWalkDoneForVrf ( VrfEntry vrf)

Definition at line 321 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::RouteWalkNotify ( DBTablePartBase partition,
DBEntryBase e 
)
virtual

Reimplemented from AgentRouteWalker.

Definition at line 193 of file controller_route_walker.cc.

Here is the call graph for this function:

uint64_t ControllerRouteWalker::sequence_number ( ) const
inline

Definition at line 41 of file controller_route_walker.h.

void ControllerRouteWalker::set_sequence_number ( uint64_t  sequence_number)
inline

Definition at line 42 of file controller_route_walker.h.

Here is the call graph for this function:

void ControllerRouteWalker::set_type ( Type  type)
inline

Definition at line 40 of file controller_route_walker.h.

void ControllerRouteWalker::Start ( Type  type,
bool  associate,
AgentRouteWalker::WalkDone  walk_done_cb 
)

Definition at line 336 of file controller_route_walker.cc.

Here is the call graph for this function:

void ControllerRouteWalker::StartRouteWalk ( VrfEntry vrf,
bool  associate,
Type  type 
)

Definition at line 345 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfDelPeer ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 98 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfDelStale ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 132 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfNotifyAll ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 67 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfNotifyInternal ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 164 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfNotifyMulticast ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 155 of file controller_route_walker.cc.

Here is the call graph for this function:

bool ControllerRouteWalker::VrfWalkNotify ( DBTablePartBase partition,
DBEntryBase e 
)
virtual

Reimplemented from AgentRouteWalker.

Definition at line 32 of file controller_route_walker.cc.

Here is the call graph for this function:

Member Data Documentation

bool ControllerRouteWalker::associate_
private

Definition at line 71 of file controller_route_walker.h.

Peer* ControllerRouteWalker::peer_
private

Definition at line 70 of file controller_route_walker.h.

uint64_t ControllerRouteWalker::sequence_number_
private

Definition at line 73 of file controller_route_walker.h.

Type ControllerRouteWalker::type_
private

Definition at line 72 of file controller_route_walker.h.


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