5 #include <boost/foreach.hpp>
12 #include "bgp/routing-policy/routing_policy_types.h"
23 srpi->set_name(policy->
name());
25 srpi->set_ref_count(policy->
refcount());
26 srpi->set_deleted(policy->
deleted());
27 vector<PolicyTermInfo> term_list;
29 PolicyTermInfo show_term;
30 show_term.set_terminal(term->terminal());
31 vector<string> match_list;
33 match_list.push_back(match->
ToString());
35 show_term.set_matches(match_list);
36 vector<string> action_list;
38 action_list.push_back(action->
ToString());
40 show_term.set_actions(action_list);
41 term_list.push_back(show_term);
43 srpi->set_terms(term_list);
50 bool summary, uint32_t page_limit, uint32_t iter_limit,
51 const string &start_policy,
const string &search_string,
52 vector<ShowRoutingPolicyInfo> *srpi_list,
string *next_policy) {
56 for (uint32_t iter_count = 0; it != rpm->
name_cend(); ++it, ++iter_count) {
58 if (!search_string.empty() &&
59 (policy->
name().find(search_string) == string::npos) &&
60 (search_string !=
"deleted" || !policy->
deleted())) {
63 ShowRoutingPolicyInfo srpi;
65 srpi_list->push_back(srpi);
66 if (srpi_list->size() >= page_limit)
68 if (iter_count >= iter_limit)
78 bool done = srpi_list->size() >= page_limit;
79 *next_policy = it->second->name();
85 bool BgpShowHandler<ShowRoutingPolicyReq, ShowRoutingPolicyReqIterate,
86 ShowRoutingPolicyResp, ShowRoutingPolicyInfo>::CallbackCommon(
94 if (!next_policy.empty())
95 SaveContextToData(next_policy, done, data);
101 void BgpShowHandler<ShowRoutingPolicyReq, ShowRoutingPolicyReqIterate,
102 ShowRoutingPolicyResp, ShowRoutingPolicyInfo>::FillShowList(
103 ShowRoutingPolicyResp *resp,
104 const vector<ShowRoutingPolicyInfo> &show_list) {
105 resp->set_routing_policies(show_list);
109 void ShowRoutingPolicyReq::HandleRequest()
const {
116 ShowRoutingPolicyReq,
117 ShowRoutingPolicyReqIterate,
118 ShowRoutingPolicyResp,
119 ShowRoutingPolicyInfo>::Callback, _1, _2, _3, _4, _5);
121 ShowRoutingPolicyReq,
122 ShowRoutingPolicyReqIterate,
123 ShowRoutingPolicyResp,
124 ShowRoutingPolicyInfo>::CreateData;
126 ps.stages_.push_back(s1);
133 void ShowRoutingPolicyReqIterate::HandleRequest()
const {
140 ShowRoutingPolicyReq,
141 ShowRoutingPolicyReqIterate,
142 ShowRoutingPolicyResp,
143 ShowRoutingPolicyInfo>::CallbackIterate, _1, _2, _3, _4, _5);
145 ShowRoutingPolicyReq,
146 ShowRoutingPolicyReqIterate,
147 ShowRoutingPolicyResp,
148 ShowRoutingPolicyInfo>::CreateData;
150 ps.stages_.push_back(s1);
const_name_iterator name_cend()
std::vector< int > instances_
RoutingPolicyTermList * terms()
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
RoutingPolicyList::const_iterator const_name_iterator
boost::shared_ptr< PolicyTerm > PolicyTermPtr
virtual std::string ToString() const =0
int GetTaskId(const std::string &name)
RoutingPolicyMgr * routing_policy_mgr()
uint32_t refcount() const
static TaskScheduler * GetInstance()
uint32_t iter_limit() const
virtual std::string ToString() const =0
static bool FillRoutingPolicyInfoList(const BgpSandeshContext *bsc, bool summary, uint32_t page_limit, uint32_t iter_limit, const string &start_policy, const string &search_string, vector< ShowRoutingPolicyInfo > *srpi_list, string *next_policy)
std::vector< ShowT > show_list
std::string search_string
uint32_t page_limit() const
uint32_t generation() const
static void FillRoutingPolicyInfo(ShowRoutingPolicyInfo *srpi, const BgpSandeshContext *bsc, const RoutingPolicy *policy, bool summary)
const_name_iterator name_clower_bound(const std::string &name)
const std::string & name() const