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

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

Definition at line 48 of file community.h.

Constructor & Destructor Documentation

Community::Community ( CommunityDB comm_db)
inlineexplicit

Definition at line 49 of file community.h.

Community::Community ( const Community rhs)
inlineexplicit

Definition at line 53 of file community.h.

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

Definition at line 60 of file community.cc.

virtual Community::~Community ( )
inlinevirtual

Definition at line 58 of file community.h.

Member Function Documentation

void Community::Append ( uint32_t  value)
private

Definition at line 78 of file community.cc.

Here is the call graph for this function:

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

Definition at line 85 of file community.cc.

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:

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

Definition at line 65 of file community.h.

int Community::CompareTo ( const Community rhs) const

Definition at line 69 of file community.cc.

bool Community::ContainsValue ( uint32_t  value) const

Definition at line 113 of file community.cc.

void Community::Remove ( )
virtual

Definition at line 109 of file community.cc.

Here is the call graph for this function:

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

Definition at line 102 of file community.cc.

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

Definition at line 95 of file community.cc.

Friends And Related Function Documentation

friend class BgpAttrTest
friend

Definition at line 79 of file community.h.

friend class CommunityDB
friend

Definition at line 78 of file community.h.

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

Definition at line 67 of file community.h.

int intrusive_ptr_add_ref ( const Community ccomm)
friend

Definition at line 91 of file community.h.

int intrusive_ptr_del_ref ( const Community ccomm)
friend

Definition at line 95 of file community.h.

void intrusive_ptr_release ( const Community ccomm)
friend

Definition at line 99 of file community.h.

Member Data Documentation

CommunityDB* Community::comm_db_
private

Definition at line 87 of file community.h.

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

Definition at line 88 of file community.h.

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: