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

#include <bgp_update_queue.h>

Collaboration diagram for UpdateQueue:

Public Types

typedef
boost::intrusive::member_hook
< UpdateEntry,
boost::intrusive::list_member_hook
<>,&UpdateEntry::list_node
UpdateEntryNode
 
typedef boost::intrusive::list
< UpdateEntry, UpdateEntryNode
UpdatesByOrder
 
typedef
boost::intrusive::member_hook
< UpdateInfo,
boost::intrusive::set_member_hook
<>,&UpdateInfo::update_node
UpdateSetNode
 
typedef boost::intrusive::set
< UpdateInfo, UpdateSetNode,
boost::intrusive::compare
< UpdateByAttrCmp > > 
UpdatesByAttr
 
typedef std::vector
< UpdateMarker * > 
MarkerList
 

Public Member Functions

 UpdateQueue (const RibOut *ribout, int queue_id)
 
 ~UpdateQueue ()
 
bool Enqueue (RouteUpdate *rt_update)
 
void Dequeue (RouteUpdate *rt_update)
 
RouteUpdateNextUpdate (UpdateEntry *upentry)
 
UpdateEntryNextEntry (UpdateEntry *upentry)
 
void AttrDequeue (UpdateInfo *current_uinfo)
 
UpdateInfoAttrNext (UpdateInfo *current_uinfo)
 
void AddMarker (UpdateMarker *marker, RouteUpdate *rt_update)
 
void MoveMarker (UpdateMarker *marker, RouteUpdate *rt_update)
 
void MarkerSplit (UpdateMarker *marker, const RibPeerSet &msplit)
 
void MarkerMerge (UpdateMarker *dst_marker, UpdateMarker *src_marker, const RibPeerSet &bitset)
 
UpdateMarkerGetMarker (int bit)
 
bool Join (int bit)
 
void Leave (int bit)
 
bool CheckInvariants () const
 
UpdateMarkertail_marker ()
 
bool empty () const
 
size_t size () const
 
size_t marker_count () const
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (UpdateQueue)
 

Private Attributes

int queue_id_
 
bool encoding_is_xmpp_
 
uint64_t tstamp_
 
size_t marker_count_
 
UpdatesByOrder queue_
 
UpdatesByAttr attr_set_
 
MarkerList markers_
 
UpdateMarker tail_marker_
 

Friends

class BgpExportTest
 
class RibOutUpdatesTest
 

Detailed Description

Definition at line 96 of file bgp_update_queue.h.

Member Typedef Documentation

typedef std::vector<UpdateMarker *> UpdateQueue::MarkerList

Definition at line 117 of file bgp_update_queue.h.

typedef boost::intrusive::member_hook< UpdateEntry, boost::intrusive::list_member_hook<>, &UpdateEntry::list_node > UpdateQueue::UpdateEntryNode

Definition at line 103 of file bgp_update_queue.h.

typedef boost::intrusive::list<UpdateEntry, UpdateEntryNode> UpdateQueue::UpdatesByOrder

Definition at line 105 of file bgp_update_queue.h.

typedef boost::intrusive::member_hook<UpdateInfo, boost::intrusive::set_member_hook<>, &UpdateInfo::update_node > UpdateQueue::UpdateSetNode

Definition at line 111 of file bgp_update_queue.h.

Constructor & Destructor Documentation

UpdateQueue::UpdateQueue ( const RibOut ribout,
int  queue_id 
)

Definition at line 14 of file bgp_update_queue.cc.

UpdateQueue::~UpdateQueue ( )

Definition at line 25 of file bgp_update_queue.cc.

Member Function Documentation

void UpdateQueue::AddMarker ( UpdateMarker marker,
RouteUpdate rt_update 
)

Definition at line 160 of file bgp_update_queue.cc.

Here is the call graph for this function:

void UpdateQueue::AttrDequeue ( UpdateInfo current_uinfo)

Definition at line 110 of file bgp_update_queue.cc.

UpdateInfo * UpdateQueue::AttrNext ( UpdateInfo current_uinfo)

Definition at line 130 of file bgp_update_queue.cc.

Here is the call graph for this function:

bool UpdateQueue::CheckInvariants ( ) const

Definition at line 302 of file bgp_update_queue.cc.

Here is the call graph for this function:

void UpdateQueue::Dequeue ( RouteUpdate rt_update)

Definition at line 65 of file bgp_update_queue.cc.

Here is the call graph for this function:

UpdateQueue::DISALLOW_COPY_AND_ASSIGN ( UpdateQueue  )
private
bool UpdateQueue::empty ( ) const

Definition at line 317 of file bgp_update_queue.cc.

bool UpdateQueue::Enqueue ( RouteUpdate rt_update)

Definition at line 37 of file bgp_update_queue.cc.

Here is the call graph for this function:

UpdateMarker * UpdateQueue::GetMarker ( int  bit)

Definition at line 256 of file bgp_update_queue.cc.

bool UpdateQueue::Join ( int  bit)

Definition at line 273 of file bgp_update_queue.cc.

Here is the call graph for this function:

void UpdateQueue::Leave ( int  bit)

Definition at line 291 of file bgp_update_queue.cc.

Here is the call graph for this function:

size_t UpdateQueue::marker_count ( ) const

Definition at line 325 of file bgp_update_queue.cc.

void UpdateQueue::MarkerMerge ( UpdateMarker dst_marker,
UpdateMarker src_marker,
const RibPeerSet bitset 
)

Definition at line 230 of file bgp_update_queue.cc.

Here is the call graph for this function:

void UpdateQueue::MarkerSplit ( UpdateMarker marker,
const RibPeerSet msplit 
)

Definition at line 206 of file bgp_update_queue.cc.

Here is the call graph for this function:

void UpdateQueue::MoveMarker ( UpdateMarker marker,
RouteUpdate rt_update 
)

Definition at line 184 of file bgp_update_queue.cc.

UpdateEntry * UpdateQueue::NextEntry ( UpdateEntry upentry)

Definition at line 99 of file bgp_update_queue.cc.

RouteUpdate * UpdateQueue::NextUpdate ( UpdateEntry upentry)

Definition at line 81 of file bgp_update_queue.cc.

Here is the call graph for this function:

size_t UpdateQueue::size ( ) const

Definition at line 321 of file bgp_update_queue.cc.

UpdateMarker* UpdateQueue::tail_marker ( )
inline

Definition at line 143 of file bgp_update_queue.h.

Friends And Related Function Documentation

friend class BgpExportTest
friend

Definition at line 150 of file bgp_update_queue.h.

friend class RibOutUpdatesTest
friend

Definition at line 151 of file bgp_update_queue.h.

Member Data Documentation

UpdatesByAttr UpdateQueue::attr_set_
private

Definition at line 158 of file bgp_update_queue.h.

bool UpdateQueue::encoding_is_xmpp_
private

Definition at line 154 of file bgp_update_queue.h.

size_t UpdateQueue::marker_count_
private

Definition at line 156 of file bgp_update_queue.h.

MarkerList UpdateQueue::markers_
private

Definition at line 159 of file bgp_update_queue.h.

UpdatesByOrder UpdateQueue::queue_
private

Definition at line 157 of file bgp_update_queue.h.

int UpdateQueue::queue_id_
private

Definition at line 153 of file bgp_update_queue.h.

UpdateMarker UpdateQueue::tail_marker_
private

Definition at line 160 of file bgp_update_queue.h.

uint64_t UpdateQueue::tstamp_
private

Definition at line 155 of file bgp_update_queue.h.


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