5 #ifndef SRC_BGP_BGP_UPDATE_QUEUE_H_
6 #define SRC_BGP_BGP_UPDATE_QUEUE_H_
99 typedef boost::intrusive::member_hook<
101 boost::intrusive::list_member_hook<>,
108 typedef boost::intrusive::member_hook<
UpdateInfo,
109 boost::intrusive::set_member_hook<>,
114 boost::intrusive::compare<UpdateByAttrCmp>
const BgpAttr * attr() const
boost::intrusive::list_member_hook list_node
bool Enqueue(RouteUpdate *rt_update)
UpdateEntry * NextEntry(UpdateEntry *upentry)
boost::intrusive::set< UpdateInfo, UpdateSetNode, boost::intrusive::compare< UpdateByAttrCmp > > UpdatesByAttr
boost::intrusive::member_hook< UpdateEntry, boost::intrusive::list_member_hook<>, &UpdateEntry::list_node > UpdateEntryNode
void MarkerSplit(UpdateMarker *marker, const RibPeerSet &msplit)
DISALLOW_COPY_AND_ASSIGN(UpdateQueue)
UpdateInfo * AttrNext(UpdateInfo *current_uinfo)
bool CheckInvariants() const
UpdateMarker * tail_marker()
friend class BgpExportTest
friend class RibOutUpdatesTest
void AddMarker(UpdateMarker *marker, RouteUpdate *rt_update)
UpdateQueue(const RibOut *ribout, int queue_id)
void MarkerMerge(UpdateMarker *dst_marker, UpdateMarker *src_marker, const RibPeerSet &bitset)
std::vector< UpdateMarker * > MarkerList
boost::intrusive::list< UpdateEntry, UpdateEntryNode > UpdatesByOrder
boost::intrusive::member_hook< UpdateInfo, boost::intrusive::set_member_hook<>, &UpdateInfo::update_node > UpdateSetNode
void Dequeue(RouteUpdate *rt_update)
void MoveMarker(UpdateMarker *marker, RouteUpdate *rt_update)
RouteUpdate * NextUpdate(UpdateEntry *upentry)
UpdateMarker * GetMarker(int bit)
size_t marker_count() const
void AttrDequeue(UpdateInfo *current_uinfo)
UpdateMarker tail_marker_
bool operator()(const UpdateInfo &lhs, const UpdateInfo &rhs) const
boost::intrusive::set_member_hook update_node