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