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

#include <peer.h>

Inheritance diagram for DynamicPeer:
Collaboration diagram for DynamicPeer:

Public Member Functions

 DynamicPeer (Agent *agent, Type type, const std::string &name, bool controller_export)
 
virtual ~DynamicPeer ()
 
virtual bool SkipAddChangeRequest () const
 
virtual bool IsDeleted () const
 
void StopRouteExports ()
 
bool DeleteTimeout ()
 
- Public Member Functions inherited from Peer
 Peer (Type type, const std::string &name, bool controller_export)
 
virtual ~Peer ()
 
bool IsLess (const Peer *rhs) const
 
virtual bool Compare (const Peer *rhs) const
 
virtual bool export_to_controller () const
 
virtual const Ip4AddressNexthopIp (Agent *agent, const AgentPath *path) const
 
const std::string & GetName () const
 
const Type GetType () const
 
uint32_t refcount () const
 
uint64_t sequence_number () const
 
void incr_sequence_number ()
 

Static Public Member Functions

static void ProcessDelete (DynamicPeer *p)
 

Static Public Attributes

static const uint32_t kDeleteTimeout = 300 * 1000
 

Private Member Functions

virtual bool DeleteOnZeroRefcount () const
 
 DISALLOW_COPY_AND_ASSIGN (DynamicPeer)
 

Private Attributes

Timerdelete_timeout_timer_
 
tbb::atomic< bool > deleted_
 
tbb::atomic< bool > skip_add_change_
 

Friends

void intrusive_ptr_add_ref (const Peer *p)
 
void intrusive_ptr_release (const Peer *p)
 

Additional Inherited Members

- Public Types inherited from Peer
enum  Type {
  MULTICAST_PEER, EVPN_PEER, BGP_PEER, EVPN_ROUTING_PEER,
  LINKLOCAL_PEER, ECMP_PEER, VXLAN_BGP_PEER, LOCAL_VM_PORT_PEER,
  LOCAL_VM_PEER, LOCAL_PEER, NOVA_PEER, VGW_PEER,
  MULTICAST_FABRIC_TREE_BUILDER, OVS_PEER, MULTICAST_TOR_PEER, MAC_VM_BINDING_PEER,
  INET_EVPN_PEER, MAC_LEARNING_PEER
}
 
typedef std::map< std::string,
Peer * > 
PeerMap
 
typedef std::pair< std::string,
Peer * > 
PeerPair
 

Detailed Description

Definition at line 119 of file peer.h.

Constructor & Destructor Documentation

DynamicPeer::DynamicPeer ( Agent agent,
Type  type,
const std::string &  name,
bool  controller_export 
)

Definition at line 43 of file peer.cc.

Here is the call graph for this function:

DynamicPeer::~DynamicPeer ( )
virtual

Definition at line 55 of file peer.cc.

Member Function Documentation

bool DynamicPeer::DeleteOnZeroRefcount ( ) const
privatevirtual

Reimplemented from Peer.

Definition at line 87 of file peer.cc.

bool DynamicPeer::DeleteTimeout ( )

Definition at line 82 of file peer.cc.

DynamicPeer::DISALLOW_COPY_AND_ASSIGN ( DynamicPeer  )
private
virtual bool DynamicPeer::IsDeleted ( ) const
inlinevirtual

Reimplemented from Peer.

Reimplemented in BgpPeer.

Definition at line 133 of file peer.h.

void DynamicPeer::ProcessDelete ( DynamicPeer p)
static

Definition at line 63 of file peer.cc.

virtual bool DynamicPeer::SkipAddChangeRequest ( ) const
inlinevirtual

Reimplemented from Peer.

Definition at line 131 of file peer.h.

void DynamicPeer::StopRouteExports ( )
inline

Definition at line 137 of file peer.h.

Friends And Related Function Documentation

void intrusive_ptr_add_ref ( const Peer p)
friend

Definition at line 31 of file peer.cc.

void intrusive_ptr_release ( const Peer p)
friend

Definition at line 37 of file peer.cc.

Member Data Documentation

Timer* DynamicPeer::delete_timeout_timer_
private

Definition at line 149 of file peer.h.

tbb::atomic<bool> DynamicPeer::deleted_
private

Definition at line 150 of file peer.h.

const uint32_t DynamicPeer::kDeleteTimeout = 300 * 1000
static

Definition at line 124 of file peer.h.

tbb::atomic<bool> DynamicPeer::skip_add_change_
private

Definition at line 151 of file peer.h.


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