OpenSDN source code
Community Class Reference

#include <community.h>

Collaboration diagram for Community:

Public Types

typedef std::vector< uint32_t > CommunityList
 

Public Member Functions

 Community (CommunityDB *comm_db)
 
 Community (const Community &rhs)
 
 Community (CommunityDB *comm_db, const CommunitySpec spec)
 
virtual ~Community ()
 
virtual void Remove ()
 
int CompareTo (const Community &rhs) const
 
bool ContainsValue (uint32_t value) const
 
void BuildStringList (std::vector< std::string > *list) const
 
const std::vector< uint32_t > & communities () const
 

Private Member Functions

void Append (uint32_t value)
 
void Append (const std::vector< uint32_t > &communities)
 
void Set (const std::vector< uint32_t > &communities)
 
void Remove (const std::vector< uint32_t > &communities)
 

Private Attributes

tbb::atomic< int > refcount_
 
CommunityDBcomm_db_
 
std::vector< uint32_t > communities_
 

Friends

class CommunityDB
 
class BgpAttrTest
 
std::size_t hash_value (Community const &comm)
 
int intrusive_ptr_add_ref (const Community *ccomm)
 
int intrusive_ptr_del_ref (const Community *ccomm)
 
void intrusive_ptr_release (const Community *ccomm)
 

Detailed Description

Definition at line 46 of file community.h.

Member Typedef Documentation

◆ CommunityList

typedef std::vector<uint32_t> Community::CommunityList

Definition at line 48 of file community.h.

Constructor & Destructor Documentation

◆ Community() [1/3]

Community::Community ( CommunityDB comm_db)
inlineexplicit

Definition at line 49 of file community.h.

◆ Community() [2/3]

Community::Community ( const Community rhs)
inlineexplicit

Definition at line 53 of file community.h.

◆ Community() [3/3]

Community::Community ( CommunityDB comm_db,
const CommunitySpec  spec 
)
explicit

Definition at line 60 of file community.cc.

◆ ~Community()

virtual Community::~Community ( )
inlinevirtual

Definition at line 58 of file community.h.

Member Function Documentation

◆ Append() [1/2]

void Community::Append ( const std::vector< uint32_t > &  communities)
private

Definition at line 85 of file community.cc.

Here is the call graph for this function:

◆ Append() [2/2]

void Community::Append ( uint32_t  value)
private

Definition at line 78 of file community.cc.

Here is the call graph for this function:

◆ BuildStringList()

void Community::BuildStringList ( std::vector< std::string > *  list) const

Definition at line 121 of file community.cc.

Here is the call graph for this function:

◆ communities()

const std::vector<uint32_t>& Community::communities ( ) const
inline

Definition at line 65 of file community.h.

◆ CompareTo()

int Community::CompareTo ( const Community rhs) const

Definition at line 69 of file community.cc.

◆ ContainsValue()

bool Community::ContainsValue ( uint32_t  value) const

Definition at line 113 of file community.cc.

◆ Remove() [1/2]

void Community::Remove ( )
virtual

Definition at line 109 of file community.cc.

Here is the call graph for this function:

◆ Remove() [2/2]

void Community::Remove ( const std::vector< uint32_t > &  communities)
private

Definition at line 102 of file community.cc.

Here is the call graph for this function:

◆ Set()

void Community::Set ( const std::vector< uint32_t > &  communities)
private

Definition at line 95 of file community.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ BgpAttrTest

friend class BgpAttrTest
friend

Definition at line 79 of file community.h.

◆ CommunityDB

friend class CommunityDB
friend

Definition at line 78 of file community.h.

◆ hash_value

std::size_t hash_value ( Community const &  comm)
friend

Definition at line 67 of file community.h.

◆ intrusive_ptr_add_ref

int intrusive_ptr_add_ref ( const Community ccomm)
friend

Definition at line 91 of file community.h.

◆ intrusive_ptr_del_ref

int intrusive_ptr_del_ref ( const Community ccomm)
friend

Definition at line 95 of file community.h.

◆ intrusive_ptr_release

void intrusive_ptr_release ( const Community ccomm)
friend

Definition at line 99 of file community.h.

Member Data Documentation

◆ comm_db_

CommunityDB* Community::comm_db_
private

Definition at line 87 of file community.h.

◆ communities_

std::vector<uint32_t> Community::communities_
private

Definition at line 88 of file community.h.

◆ refcount_

tbb::atomic<int> Community::refcount_
mutableprivate

Definition at line 86 of file community.h.


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