OpenSDN source code
|
#include <bgp_update_queue.h>
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) |
RouteUpdate * | NextUpdate (UpdateEntry *upentry) |
UpdateEntry * | NextEntry (UpdateEntry *upentry) |
void | AttrDequeue (UpdateInfo *current_uinfo) |
UpdateInfo * | AttrNext (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) |
UpdateMarker * | GetMarker (int bit) |
bool | Join (int bit) |
void | Leave (int bit) |
bool | CheckInvariants () const |
UpdateMarker * | tail_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 |
Definition at line 96 of file bgp_update_queue.h.
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::set<UpdateInfo, UpdateSetNode, boost::intrusive::compare<UpdateByAttrCmp> > UpdateQueue::UpdatesByAttr |
Definition at line 115 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.
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.
void UpdateQueue::AddMarker | ( | UpdateMarker * | marker, |
RouteUpdate * | rt_update | ||
) |
void UpdateQueue::AttrDequeue | ( | UpdateInfo * | current_uinfo | ) |
Definition at line 110 of file bgp_update_queue.cc.
UpdateInfo * UpdateQueue::AttrNext | ( | UpdateInfo * | current_uinfo | ) |
bool UpdateQueue::CheckInvariants | ( | ) | const |
void UpdateQueue::Dequeue | ( | RouteUpdate * | rt_update | ) |
|
private |
bool UpdateQueue::empty | ( | ) | const |
Definition at line 317 of file bgp_update_queue.cc.
bool UpdateQueue::Enqueue | ( | RouteUpdate * | rt_update | ) |
UpdateMarker * UpdateQueue::GetMarker | ( | int | bit | ) |
Definition at line 256 of file bgp_update_queue.cc.
bool UpdateQueue::Join | ( | int | bit | ) |
void UpdateQueue::Leave | ( | int | bit | ) |
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 | ||
) |
void UpdateQueue::MarkerSplit | ( | UpdateMarker * | marker, |
const RibPeerSet & | msplit | ||
) |
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 | ) |
size_t UpdateQueue::size | ( | ) | const |
Definition at line 321 of file bgp_update_queue.cc.
|
inline |
Definition at line 143 of file bgp_update_queue.h.
|
friend |
Definition at line 150 of file bgp_update_queue.h.
|
friend |
Definition at line 151 of file bgp_update_queue.h.
|
private |
Definition at line 158 of file bgp_update_queue.h.
|
private |
Definition at line 154 of file bgp_update_queue.h.
|
private |
Definition at line 156 of file bgp_update_queue.h.
|
private |
Definition at line 159 of file bgp_update_queue.h.
|
private |
Definition at line 157 of file bgp_update_queue.h.
|
private |
Definition at line 153 of file bgp_update_queue.h.
|
private |
Definition at line 160 of file bgp_update_queue.h.
|
private |
Definition at line 155 of file bgp_update_queue.h.