5 #ifndef SRC_BGP_BGP_UPDATE_SENDER_H_
6 #define SRC_BGP_BGP_UPDATE_SENDER_H_
8 #include <boost/ptr_container/ptr_list.hpp>
81 : type(type),
valid(true) {
107 typedef boost::ptr_list<WorkBase>
WorkQueue;
195 #endif // SRC_BGP_BGP_UPDATE_SENDER_H_
RibStateMap rib_state_imap_
bool SendReadyCallback(IPeerUpdate *peer)
IndexMap< RibOut *, RibState > RibStateMap
bool PeerIsRegistered(IPeerUpdate *peer) const
void UpdatePeer(IPeerUpdate *peer)
WorkRibOut(RibOut *ribout, int queue_id)
bool IsQueueActive(RibOut *ribout, int queue_id, IPeerUpdate *peer)
bool PeerInSync(IPeerUpdate *peer) const
void UpdateRibOut(RibOut *ribout, int queue_id)
PeerStateMap peer_state_imap_
void WorkRibOutInvalidate(RibOut *ribout)
void WorkPeerInvalidate(IPeerUpdate *peer)
bool CheckInvariants() const
void RibOutActive(RibOut *ribout, int queue_id)
BgpUpdateSender(BgpServer *server)
bool PeerInSync(IPeerUpdate *peer) const
void BuildSyncBitSet(const RibOut *ribout, RibState *rs, RibPeerSet *msync)
bool PeerIsSendReady(IPeerUpdate *peer) const
BgpUpdateSender * sender_
bool CheckInvariants() const
std::unique_ptr< WorkBase > WorkDequeue()
friend class BgpUpdateSenderTest
boost::ptr_list< WorkBase > WorkQueue
bool UpdatePeerQueue(IPeerUpdate *peer, PeerState *ps, int queue_id)
void Leave(RibOut *ribout, IPeerUpdate *peer)
friend class RibOutUpdatesTest
void Join(RibOut *ribout, IPeerUpdate *peer)
void WorkRibOutEnqueue(RibOut *ribout, int queue_id)
DISALLOW_COPY_AND_ASSIGN(BgpSenderPartition)
IndexMap< IPeerUpdate *, PeerState > PeerStateMap
void RibOutActive(int index, RibOut *ribout, int queue_id)
void SetSendBlocked(RibOut *ribout, int queue_id, const RibPeerSet &blocked)
WorkPeer(IPeerUpdate *peer)
void PeerSendReady(IPeerUpdate *peer)
BgpSenderPartition(BgpUpdateSender *sender, int index)
void PeerSendReady(IPeerUpdate *peer)
void WorkEnqueue(WorkBase *wentry)
friend class BgpUpdateSenderTest
BgpSenderPartition * partition(int index)
void set_disabled(bool disabled)
void Remove(RibOut *ribout, IPeerUpdate *peer)
DISALLOW_COPY_AND_ASSIGN(BgpUpdateSender)
void SetQueueSync(PeerState *ps, int queue_id)
WorkQueue< IPeerUpdate * > send_ready_queue_
friend class RibOutUpdatesTest
void Add(RibOut *ribout, IPeerUpdate *peer)
std::vector< BgpSenderPartition * > partitions_
bool PeerIsRegistered(IPeerUpdate *peer) const
void SetQueueActive(const RibOut *ribout, RibState *rs, int queue_id, const RibPeerSet &munsync)
void WorkPeerEnqueue(IPeerUpdate *peer)