15 for (List::const_iterator iter =
list_.begin();
16 iter !=
list_.end(); ++iter) {
17 if (iter->roattr == roattr)
return iter.operator->();
70 for (UpdateInfoSList::List::iterator iter =
updates_->begin();
72 if (iter->roattr == roattr)
return iter.operator->();
82 for (UpdateInfoSList::List::const_iterator iter =
updates_->begin();
84 if (iter->roattr == roattr)
return iter.operator->();
94 for (UpdateInfoSList::List::iterator iter =
updates_->begin();
96 iter->target.Reset(peerset);
97 if (iter->target.empty()) {
124 if (uinfo_slist->empty() &&
127 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
129 if (!withdraw_peerset.
Contains(iter->bitset))
140 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
142 old_peerset.
Set(iter->bitset);
144 for (UpdateInfoSList::List::const_iterator iter = uinfo_slist->begin();
145 iter != uinfo_slist->end(); ++iter) {
146 new_peerset.
Set(iter->target);
148 if (!new_peerset.
Contains(old_peerset))
156 for (UpdateInfoSList::List::const_iterator iter = uinfo_slist->begin();
157 iter != uinfo_slist->end(); ++iter) {
165 if (iter->target != attr_peerset)
174 for (UpdateInfoSList::List::const_iterator iter =
updates_->begin();
191 for (UpdateInfoSList::List::iterator iter = uinfo_slist->begin();
192 iter != uinfo_slist->end(); ) {
195 uinfo->
target |= iter->target;
200 iter = uinfo_slist->erase(iter);
221 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
223 peerset.
Set(iter->bitset);
227 for (UpdateInfoSList::List::const_iterator iter = uinfo_slist->begin();
228 iter != uinfo_slist->end(); ++iter) {
229 peerset.
Reset(iter->target);
233 if (!peerset.
empty()) {
235 uinfo_slist->push_front(*uinfo);
249 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
253 for (UpdateInfoSList::List::iterator iter = uinfo_slist->begin();
254 iter != uinfo_slist->end(); ++iter) {
256 if (iter->roattr != ainfo->
roattr)
262 iter->target.Reset(ainfo->
bitset);
263 if (iter->target.empty()) {
306 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
308 if (iter->roattr == roattr)
return iter.operator->();
332 for (AdvertiseSList::List::iterator iter = adv_slist->begin();
333 iter != adv_slist->end(); ) {
336 if (iter->roattr == *roattr) {
337 assert(ainfo == NULL);
338 ainfo = iter.operator->();
349 if (iter->bitset.empty()) {
350 AdvertiseSList::List::iterator prev_iter = iter++;
362 adv_slist->push_front(*ainfo);
366 assert(ainfo == NULL);
376 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
378 if (iter->roattr.IsReachable()) {
445 for (AdvertiseSList::List::const_iterator iter =
history_->begin();
447 if (iter->roattr == roattr)
return iter.operator->();
459 list_.push_back(rt_update);
469 list_.remove(rt_update);
476 for (List::iterator iter =
list_.begin(); iter !=
list_.end(); ++iter) {
477 if ((*iter)->queue_id() == queue_id)
493 assert(
list_.size() != 0);
495 if (
list_.size() > 1)
RouteUpdate(BgpRoute *route, int queue_id)
RouteUpdate * MakeRouteUpdate()
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
void SetHistory(AdvertiseSList &history)
void SetUpdateInfo(UpdateInfoSList &uinfo_slist)
void Reset(const BitSet &rhs)
void AddUpdate(RouteUpdate *rt_update)
bool RemoveUpdateInfo(UpdateInfo *uinfo)
bool Contains(const BitSet &rhs) const
bool CompareUpdateInfo(const UpdateInfoSList &uinfo_slist) const
void swap(UpdateInfoSList &uinfo_slist)
void MoveHistory(RouteState *rstate)
const AdvertiseInfo * FindHistory(const RibOutAttr &roattr) const
UpdateInfo * FindUpdateInfo(const RibOutAttr &roattr)
void BuildNegativeUpdateInfo(UpdateInfoSList &uinfo_slist) const
void SetHistory(AdvertiseSList &history)
void ResetUpdateInfo(const RibPeerSet &peerset)
void Set(const BitSet &rhs)
AdvertiseSList & History()
void MoveHistory(RouteState *rstate)
RouteUpdate * FindUpdate(int queue_id)
bool FlagIsSet(Flag flag) const
void UpdateHistory(RibOut *ribout, const RibOutAttr *roattr, const RibPeerSet &bits)
void SwapHistory(AdvertiseSList &history)
void TrimRedundantUpdateInfo(UpdateInfoSList &uinfo_slist) const
bool IsAdvertised() const
const UpdateInfo * FindUpdateInfo(const RibOutAttr &roattr) const
void RemoveUpdate(RouteUpdate *rt_update)
void SwapHistory(AdvertiseSList &history)
UpdateList * GetUpdateList(RibOut *ribout)
DBTableBase::ListenerId listener_id() const
void SwapHistory(AdvertiseSList &history)
UpdateList * MakeUpdateList()
const AdvertiseInfo * FindHistory(const RibOutAttr &roattr) const
void swap(AdvertiseSList &adv_slist)
void MergeUpdateInfo(UpdateInfoSList &uinfo_slist)