OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bgp_sandesh.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_BGP_BGP_SANDESH_H_
6 #define SRC_BGP_BGP_SANDESH_H_
7 
8 #include <boost/function.hpp>
9 #include <sandesh/sandesh.h>
10 
11 #include <string>
12 #include <vector>
13 
14 class BgpServer;
16 class BgpNeighborResp;
17 class BgpNeighborReq;
18 class ShowBgpNeighborSummaryReq;
19 class ShowNeighborStatisticsReq;
20 class ShowBgpPeeringConfigReq;
21 class ShowBgpPeeringConfigReqIterate;
22 
24  typedef boost::function<bool(const BgpSandeshContext *, bool,
25  uint32_t, uint32_t, const std::string &, const std::string &,
26  std::vector<BgpNeighborResp> *, std::string *)> NeighborListExtension;
27 
28  typedef boost::function<void(size_t *, const BgpSandeshContext *,
29  const ShowNeighborStatisticsReq *)> NeighborStatisticsExtension;
30 
31  typedef boost::function<void(const BgpSandeshContext *,
32  const ShowBgpPeeringConfigReq *)> PeeringReqHandler;
33  typedef boost::function<void(const BgpSandeshContext *,
34  const ShowBgpPeeringConfigReqIterate *)> PeeringReqIterateHandler;
35 
37 
39  const NeighborListExtension &show_neighbor,
40  const NeighborStatisticsExtension &show_neighbor_statistics);
41 
43  const PeeringReqHandler &show_peering_req_handler,
44  const PeeringReqIterateHandler &show_peering_req_iterate_handler);
45 
48 
49  bool ShowNeighborExtension(const BgpSandeshContext *bsc, bool summary,
50  uint32_t page_limit, uint32_t iter_limit,
51  const std::string &start_neighbor, const std::string &search_string,
52  std::vector<BgpNeighborResp> *list, std::string *next_neighbor) const;
53  void ShowNeighborStatisticsExtension(size_t *count,
54  const ShowNeighborStatisticsReq *req) const;
55 
56  void PeeringShowReqHandler(const ShowBgpPeeringConfigReq *req);
58  const ShowBgpPeeringConfigReqIterate *req_iterate);
59 
60  // For testing.
61  bool test_mode() const { return test_mode_; }
63  uint32_t page_limit() const { return page_limit_; }
65  uint32_t iter_limit() const { return iter_limit_; }
67 
68 private:
69  bool test_mode_;
70  uint32_t page_limit_;
71  uint32_t iter_limit_;
76 };
77 
78 #endif // SRC_BGP_BGP_SANDESH_H_
BgpXmppChannelManager * xmpp_peer_manager
Definition: bgp_sandesh.h:47
NeighborListExtension show_neighbor_ext_
Definition: bgp_sandesh.h:72
PeeringReqIterateHandler show_peering_req_iterate_handler_
Definition: bgp_sandesh.h:75
void set_iter_limit(uint32_t iter_limit)
Definition: bgp_sandesh.h:66
boost::function< bool(const BgpSandeshContext *, bool, uint32_t, uint32_t, const std::string &, const std::string &, std::vector< BgpNeighborResp > *, std::string *)> NeighborListExtension
Definition: bgp_sandesh.h:26
uint32_t iter_limit_
Definition: bgp_sandesh.h:71
BgpServer * bgp_server
Definition: bgp_sandesh.h:46
boost::function< void(const BgpSandeshContext *, const ShowBgpPeeringConfigReq *)> PeeringReqHandler
Definition: bgp_sandesh.h:32
void SetPeeringShowHandlers(const PeeringReqHandler &show_peering_req_handler, const PeeringReqIterateHandler &show_peering_req_iterate_handler)
Definition: bgp_sandesh.cc:687
NeighborStatisticsExtension show_neighbor_statistics_ext_
Definition: bgp_sandesh.h:73
void ShowNeighborStatisticsExtension(size_t *count, const ShowNeighborStatisticsReq *req) const
Definition: bgp_sandesh.cc:680
bool test_mode() const
Definition: bgp_sandesh.h:61
bool ShowNeighborExtension(const BgpSandeshContext *bsc, bool summary, uint32_t page_limit, uint32_t iter_limit, const std::string &start_neighbor, const std::string &search_string, std::vector< BgpNeighborResp > *list, std::string *next_neighbor) const
Definition: bgp_sandesh.cc:669
uint32_t iter_limit() const
Definition: bgp_sandesh.h:65
boost::function< void(size_t *, const BgpSandeshContext *, const ShowNeighborStatisticsReq *)> NeighborStatisticsExtension
Definition: bgp_sandesh.h:29
void set_test_mode(bool test_mode)
Definition: bgp_sandesh.h:62
boost::function< void(const BgpSandeshContext *, const ShowBgpPeeringConfigReqIterate *)> PeeringReqIterateHandler
Definition: bgp_sandesh.h:34
uint32_t page_limit() const
Definition: bgp_sandesh.h:63
uint32_t page_limit_
Definition: bgp_sandesh.h:70
void SetNeighborShowExtensions(const NeighborListExtension &show_neighbor, const NeighborStatisticsExtension &show_neighbor_statistics)
Definition: bgp_sandesh.cc:662
void PeeringShowReqHandler(const ShowBgpPeeringConfigReq *req)
Definition: bgp_sandesh.cc:694
PeeringReqHandler show_peering_req_handler_
Definition: bgp_sandesh.h:74
void PeeringShowReqIterateHandler(const ShowBgpPeeringConfigReqIterate *req_iterate)
Definition: bgp_sandesh.cc:704
void set_page_limit(uint32_t page_limit)
Definition: bgp_sandesh.h:64