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

#include <routing_policy.h>

Collaboration diagram for RoutingPolicy:

Classes

class  DeleteActor
 

Public Types

typedef boost::shared_ptr
< PolicyTerm
PolicyTermPtr
 
typedef std::list< PolicyTermPtrRoutingPolicyTermList
 
typedef std::pair< bool, bool > PolicyResult
 

Public Member Functions

 RoutingPolicy (std::string name, BgpServer *server, RoutingPolicyMgr *mgr, const BgpRoutingPolicyConfig *config)
 
virtual ~RoutingPolicy ()
 
void ProcessConfig ()
 
void UpdateConfig (const BgpRoutingPolicyConfig *config)
 
void ClearConfig ()
 
void Shutdown ()
 
bool MayDelete () const
 
void RetryDelete ()
 
void ManagedDelete ()
 
LifetimeActordeleter ()
 
const LifetimeActordeleter () const
 
bool deleted () const
 
const std::string & name () const
 
const BgpRoutingPolicyConfigconfig () const
 
const RoutingPolicyMgrmanager () const
 
BgpServerserver ()
 
const BgpServerserver () const
 
RoutingPolicyTermListterms ()
 
const RoutingPolicyTermListterms () const
 
void add_term (PolicyTermPtr term)
 
PolicyResult operator() (const BgpRoute *route, const BgpPath *path, BgpAttr *attr) const
 
uint32_t generation () const
 
uint32_t refcount () const
 

Private Member Functions

PolicyTermPtr BuildTerm (const RoutingPolicyTermConfig &term)
 

Private Attributes

std::string name_
 
BgpServerserver_
 
RoutingPolicyMgrmgr_
 
const BgpRoutingPolicyConfigconfig_
 
boost::scoped_ptr< DeleteActordeleter_
 
LifetimeRef< RoutingPolicymanager_delete_ref_
 
tbb::atomic< uint32_t > refcount_
 
uint32_t generation_
 
RoutingPolicyTermList terms_
 

Friends

class RoutingPolicyMgr
 
void intrusive_ptr_add_ref (RoutingPolicy *policy)
 
void intrusive_ptr_release (RoutingPolicy *policy)
 

Detailed Description

Definition at line 224 of file routing_policy.h.

Member Typedef Documentation

typedef std::pair<bool, bool> RoutingPolicy::PolicyResult

Definition at line 228 of file routing_policy.h.

typedef boost::shared_ptr<PolicyTerm> RoutingPolicy::PolicyTermPtr

Definition at line 226 of file routing_policy.h.

Definition at line 227 of file routing_policy.h.

Constructor & Destructor Documentation

RoutingPolicy::RoutingPolicy ( std::string  name,
BgpServer server,
RoutingPolicyMgr mgr,
const BgpRoutingPolicyConfig config 
)

Definition at line 304 of file routing_policy.cc.

RoutingPolicy::~RoutingPolicy ( )
virtual

Definition at line 313 of file routing_policy.cc.

Member Function Documentation

void RoutingPolicy::add_term ( PolicyTermPtr  term)
inline

Definition at line 254 of file routing_policy.h.

RoutingPolicy::PolicyTermPtr RoutingPolicy::BuildTerm ( const RoutingPolicyTermConfig term)
private

Definition at line 317 of file routing_policy.cc.

Here is the call graph for this function:

void RoutingPolicy::ClearConfig ( )

Definition at line 503 of file routing_policy.cc.

const BgpRoutingPolicyConfig* RoutingPolicy::config ( ) const
inline

Definition at line 246 of file routing_policy.h.

bool RoutingPolicy::deleted ( ) const

Definition at line 529 of file routing_policy.cc.

Here is the call graph for this function:

LifetimeActor * RoutingPolicy::deleter ( )

Definition at line 521 of file routing_policy.cc.

const LifetimeActor * RoutingPolicy::deleter ( ) const

Definition at line 525 of file routing_policy.cc.

uint32_t RoutingPolicy::generation ( ) const
inline

Definition at line 260 of file routing_policy.h.

void RoutingPolicy::ManagedDelete ( )

Definition at line 508 of file routing_policy.cc.

const RoutingPolicyMgr* RoutingPolicy::manager ( ) const
inline

Definition at line 247 of file routing_policy.h.

bool RoutingPolicy::MayDelete ( ) const

Definition at line 517 of file routing_policy.cc.

const std::string& RoutingPolicy::name ( ) const
inline

Definition at line 245 of file routing_policy.h.

RoutingPolicy::PolicyResult RoutingPolicy::operator() ( const BgpRoute route,
const BgpPath path,
BgpAttr attr 
) const

Definition at line 542 of file routing_policy.cc.

Here is the call graph for this function:

void RoutingPolicy::ProcessConfig ( )

Definition at line 447 of file routing_policy.cc.

Here is the call graph for this function:

uint32_t RoutingPolicy::refcount ( ) const
inline

Definition at line 261 of file routing_policy.h.

void RoutingPolicy::RetryDelete ( )

Definition at line 536 of file routing_policy.cc.

BgpServer* RoutingPolicy::server ( )
inline

Definition at line 249 of file routing_policy.h.

const BgpServer* RoutingPolicy::server ( ) const
inline

Definition at line 250 of file routing_policy.h.

void RoutingPolicy::Shutdown ( )

Definition at line 512 of file routing_policy.cc.

Here is the call graph for this function:

RoutingPolicyTermList* RoutingPolicy::terms ( )
inline

Definition at line 252 of file routing_policy.h.

const RoutingPolicyTermList& RoutingPolicy::terms ( ) const
inline

Definition at line 253 of file routing_policy.h.

void RoutingPolicy::UpdateConfig ( const BgpRoutingPolicyConfig config)

Definition at line 462 of file routing_policy.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

void intrusive_ptr_add_ref ( RoutingPolicy policy)
friend

Definition at line 283 of file routing_policy.h.

void intrusive_ptr_release ( RoutingPolicy policy)
friend

Definition at line 288 of file routing_policy.h.

friend class RoutingPolicyMgr
friend

Definition at line 264 of file routing_policy.h.

Member Data Documentation

const BgpRoutingPolicyConfig* RoutingPolicy::config_
private

Definition at line 273 of file routing_policy.h.

boost::scoped_ptr<DeleteActor> RoutingPolicy::deleter_
private

Definition at line 274 of file routing_policy.h.

uint32_t RoutingPolicy::generation_
private

Definition at line 279 of file routing_policy.h.

LifetimeRef<RoutingPolicy> RoutingPolicy::manager_delete_ref_
private

Definition at line 275 of file routing_policy.h.

RoutingPolicyMgr* RoutingPolicy::mgr_
private

Definition at line 272 of file routing_policy.h.

std::string RoutingPolicy::name_
private

Definition at line 270 of file routing_policy.h.

tbb::atomic<uint32_t> RoutingPolicy::refcount_
private

Definition at line 278 of file routing_policy.h.

BgpServer* RoutingPolicy::server_
private

Definition at line 271 of file routing_policy.h.

RoutingPolicyTermList RoutingPolicy::terms_
private

Definition at line 280 of file routing_policy.h.


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